It looks like this step is taking longer than the entire cmake -B without it. Is there a reason why it takes so long, and whether it can be sped up?
cmake: Step "-- Looking for C++ include boost/test/included/unit_test.hpp" takes a long time #30787
issue maflcko opened this issue on September 2, 2024-
maflcko commented at 12:35 PM on September 2, 2024: member
- maflcko added the label Build system on Sep 2, 2024
- maflcko added the label Questions and Help on Sep 2, 2024
-
hebasto commented at 12:42 PM on September 2, 2024: member
It compiles and links the minimal code that uses the
boost/test/included/unit_test.hppheader. Verifying that the header simply exists could be an alternative. -
fanquake commented at 12:47 PM on September 2, 2024: member
It's actually irrelevant for all platforms other than windows with vcpkg (as far as I'm aware), and was added to work around how boost is packaged there (we didn't have an equivalent in autotools). It should be scooped as such, rather than making all other platforms run the (pointless) slow check.
-
maflcko commented at 12:53 PM on September 2, 2024: member
Verifying that the header simply exists could be an alternative.
Yeah, that seems ideal, given that this was done for autotools as well, assuming it also works with vcpkg?
It compiles and links the minimal code that uses the
boost/test/included/unit_test.hppheader.I am using ccache to compile, but I guess this won't be picked up here?
- fanquake removed the label Questions and Help on Sep 2, 2024
-
fanquake commented at 12:57 PM on September 2, 2024: member
Yeah, that seems ideal, given that this was done for autotools as well,
Where in Autotools were we running checks to verify the existence of singlular boost headers at configure time?
-
maflcko commented at 1:11 PM on September 2, 2024: member
Where in Autotools were we running checks to verify the existence of singlular boost headers at configure time?
I haven't confirmed this, but I assumed it checked for
boost/version.hppexistence (and version conformance). Though, maybe I am wrong. In any case, anything is fine by me. I just found that it would be nice if callingrm -rf ./bld-cmake/ && cmake -B ./bld-cmakewas fast, so all developers can just call it every time, without having to think about it much. -
fanquake commented at 1:27 PM on September 2, 2024: member
I haven't confirmed this, but I assumed it checked for boost/version.hpp existence (and version conformance).
We did do a high-level check for the existence of a Boost installation, and sufficient version (and that is what is also done in CMake now), but not compilation checks for individual headers (otherwise we should add checks for all Boost headers that we might happen to
#include, i.eboost/multi_index/*, if we think they might be missing for some reason).I think either making this faster, i.e no compilation, or scoping it to vcpkg is fine.
It compiles and links
Should it be doing anything link related, if our Boost usage is header only?
- fanquake referenced this in commit dda17b44e7 on Sep 5, 2024
- fanquake referenced this in commit a7a4e11db8 on Sep 5, 2024
- fanquake closed this on Sep 6, 2024
- fanquake referenced this in commit c3af4b1ec3 on Sep 6, 2024
- bitcoin locked this on Sep 6, 2025