boost icon indicating copy to clipboard operation
boost copied to clipboard

Use top-level include folder for headers

Open Flamefire opened this issue 4 years ago • 1 comments

Currently b2 headers puts all headers under ./boost and adds the root folder to the include path. In e.g. https://github.com/boostorg/config/issues/345 I argued, that only the minimum amount of stuff should be in the include path, i.e. the current practice would allow #include <libs/config/include/boost/config.hpp> which is odd, but possible so users might do stuff like that which they are not supposed to. Even worse: #include <install> now works on systems with case-insensitive filesystems.

This might sound like a stretch, but such a case did appear with VERSION or version files other projects put into their root folder and added that to the include path which breaks any library prepared for the C++20 header <version>, see https://github.com/boostorg/config/issues/345 for more details.

--> I propose to put the headers into include/boost and add the include folder to the include paths.

I think CMakes FindBoost would still find it, because it considers the include folder already for each searched prefix. For other projects we could still provide a top-level boost symlink to include/boost but don't use that ourselves anymore, or just drop that.

Flamefire avatar Apr 10 '21 08:04 Flamefire

You should propose this on the mailing list; it will get you much wider visibility.

mclow avatar Apr 10 '21 22:04 mclow