Closed tdegeus closed 1 year ago
The answer is simply that libboost-headers
does not contain the CMake metadata, which is in libboost-devel
.
From this feedstock's perspective, I agree. Yet:
libboost-devel
Again, it is a bit of a vague issue because my CI is simply passing by using https://cmake.org/cmake/help/latest/module/FindBoost.html . Yet, I cannot figure out what the installation-specific issue could be.
There are different ways to "find" boost, and because boost is so ubiquitous, CMake even has its own FindBoost
function (which actually gets preferred over our metadata, unless you do find_package(boost CONFIG)
). In particular, certain detection mechanisms will be happy enough with finding the right headers somewhere, and deducing the rest from that.
I cannot tell what's happening in your specific situation, but you can ensure that your $PREFIX is set correctly, and if that fails, it's really not a big deal to depend on libboost-devel
. Effectively, that's all that existed before the recent refactor, and if you want to avoid the run-export, you can do either of
ignore_run_exports_from:
- libboost-devel
or
ignore_run_exports:
- libboost
(both are equivalent, their only difference is if they are addressing the run-exporteR or the run-exporteE)
Finally, I get that this is not an amazing setup. We'd like to have CMake metadata even just for the headers. But that's a bit complicated with how CMake metadata is all in the same set of files, and we can't split them well across different packages.
Thanks for the tips. Like you say, it would have been ideal to separate CMake header-only support, but that is rather an upstream request.
As to my non-reproducible issue: I'll do some more investigating, hopefully I will find out.
For documentation purposes:
I did come across a reproducer : https://readthedocs.org/projects/gooseeye/builds/22752796/ . It seems that there may be a naming inconsistency somewhere upstream. The complaint is
Could NOT find Boost (missing: Boost_INCLUDE_DIR)
Indeed https://cmake.org/cmake/help/latest/module/FindBoost.html mentions Boost_INCLUDE_DIRS
(notice the plural). I cannot really figure out who made a 'mistake' and why this lets my CMake fail.
cc @h-vetinari
Solution to issue cannot be found in the documentation.
Issue
I'm not sure if this is strictly related to this feedstock.
I'm using some header-only math functions from Boost. I can just install
libboost-headers
. I still use theBoost::headers
target, such that my library has afind_dependency(Boost REQUIRED)
call. TheFindBoost
is I believe provided by CMake and not by this feedstock.Yet on my Linux machine I keep getting an error
Strangely I'm not getting this error in the equivalent CI : https://github.com/tdegeus/GooseEPM/actions/runs/7017121385/job/19089767396
Installed packages
Environment info