Re: Incorrect Boost::headers.INTERFACE_INCLUDE_DIRECTORIES
Anthony Mallet <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.packages |
|---|---|
| Organization | LAAS/CNRS - Toulouse - France |
| Message-ID | <[email protected]> |
On Sunday 8 Feb 2026, at 14:40, Thomas Klausner wrote: > I don't know the codebase either. Reading a bit, I found that > the scripts are generated by probably generated by boost-jam, see > work/boost_1_90_0/tools/boost_install/boost-install.jam Ok, thanks for the hint! I got some kind of fix, not sure what is wrong extactly though. For some reason, without the first attached patch (boost-install-dirs.jam), "stage-includedir" is set the BOOST_ROOT variable corresponding to the staging directory (WRKSRC/stage) without the "include" subdir. This messes up the generated config files as the include dir is computed relative to the staged cmake config file. Just removing this bit makes the stage-includedir correct. I don't think this can have an impact since no headers are installed in the staged install dir anyway. > but they embed the working directory, so they need fixing either way. While here, I stumbled accross the weird rules in boost-install.jam which generates those references to WRKSRC. Seems fine to drop this, as this is anyway broken. See second patch (boost-install.jam). Note that I tested this with pkgsrc-2025Q3 (boot-1.87.0) only, I don't have a quick access to pkgsrc-current. I guess it won't be too different for boost-1.90.0, but tell me if you have issues testing this.
patch-tools_boost_install_boost_install_dirs.jam
(text/plain, 728 B)
For some reason, without this patch, "stage-includedir" is set the BOOST_ROOT
variable corresponding to the staging directory (WRKSRC/stage) without the
"include" subdir. This messes up the cmake *-config.cmake files generated
during the staged build.
--- tools/boost_install/boost-install-dirs.jam~ 2026-02-08 15:15:36.607376751 +0100
+++ tools/boost_install/boost-install-dirs.jam 2026-02-08 17:01:24.597759778 +0100
@@ -69,10 +69,6 @@
ld = [ path.root [ path.make $(ld) ] [ path.pwd ] ] ;
return $(ld) ;
}
- else if [ modules.peek boostcpp : BOOST_ROOT ]
- {
- return [ path.make [ modules.peek boostcpp : BOOST_ROOT ] ] ;
- }
else
{
local stagedir = [ stagedir ] ;
patch-tools_boost_install_boost_install.jam
(text/plain, 575 B)
path.is-rooted $(cmakedir) is always true in pkgsrc but generates references to
the working directory. This is useless anyway so it seems fine to drop this.
--- tools/boost_install/boost-install.jam~ 2026-02-08 15:15:36.607376751 +0100
+++ tools/boost_install/boost-install.jam 2026-02-08 17:08:33.462957338 +0100
@@ -797,7 +797,7 @@
"get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" REALPATH)"
: true ;
- if [ path.is-rooted $(cmakedir) ]
+ if ""
{
local cmakedir-native = [ path-native-fwd $(cmakedir) ] ;