Advice for Boost CMake scripts
michaelld at macports.org
Sun May 19 15:13:39 UTC 2019
We're working on updating Boost to 1.70.0 < https://github.com/macports/macports-ports/pull/4243 > ... we'd value others participating, BTW! Thus far many ports work out of the box with it (current Boost in MacPorts is 1.66.0, so there are some significant bug fixes and API changes to deal with); many of the ports that depend on Boost just need small tweaks to get them working; a few are above our amount of effort available & we hope upstream or someone so motivated fixes them. ... but that's not what this email is about.
I'm looking for advice on how to move forward with Boost 1.70.0's CMake find scripts: do we just not install them? Or do we patch them via what upstream has already done? Or do we just wait for 1.70.1 -- which will contain those fixes -- to be released & skip 1.70.0 entirely (and, ban it from ports in which we easily can do so)?
Here's the scoop, for those curious to know:
One change with -huge- impact that is installed by default by Boost 1.70.0 is CMake "find" scripts ... which as it turns out were -not- ready for release just yet. Boost folks already have a fix upstream, and I sincerely hope they come out with 1.70.1 with these fixes. Virtually -all- projects using CMake to find Boost via the Boost 1.70.0-provided CMake find scripts will fail to configure or build due to issues with these scripts.
CMake has for years provided a "FindBoost.cmake" script that has been reasonably robust, and they still are. This script works very robustly within MacPorts, because we abide by the common ABI naming variants that it checks for.
Luckily, Boost 1.70.0 provides an option to not install its CMake find scripts ... so, at least within MacPorts we can control whether these scripts are not installed and thus are not used, at least for 1.70.0. To Boost's credit, their fixed-up CMake find scripts are much more robust than the single one provided by CMake, and can be installed in parallel with other future Boost CMake find scripts (because of their naming, over which we have no control, but which include the whole version number).
Hence my looking for advice. Thanks in advance for your thoughts! - MLD
More information about the macports-dev