depends: bump boost to 1.87.0 and use new CMake buildsystem#30434
depends: bump boost to 1.87.0 and use new CMake buildsystem#30434theuni wants to merge 1 commit intobitcoin:masterfrom
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/30434. ReviewsSee the guideline for information on the review process. |
|
Ping @hebasto. Tested on |
|
The CI failure https://cirrus-ci.com/task/4950868422819840: |
Maybe revert 3bee514? FWIW, in the CMake staging branch, #=============================
# Language setup
#=============================
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_HOST_APPLE)
# We do not use the install_name_tool when cross-compiling for macOS.
# So disable this tool check in further enable_language() commands.
set(CMAKE_PLATFORM_HAS_INSTALLNAME FALSE)
endif()
enable_language(CXX) |
A better solution would be to fix the CMake build systems, so we don't have to pointlessly compile stub libraries, that we ultimately don't even use. |
|
Pushed a workaround hack in the meantime. |
|
@theuni want to rebase this, (and even kick it along to 1.86.0?), to see what works, what breaks etc. |
bdbe350 to
43bd397
Compare
depends/packages/boost.mk
Outdated
|
|
||
| define $(package)_set_vars | ||
| $(package)_config_opts=-DBOOST_INCLUDE_LIBRARIES="date_time;multi_index;signals2;test" -DBOOST_INSTALL_LAYOUT=system | ||
| $(package)_config_opts_darwin=-DCMAKE_PLATFORM_HAS_INSTALLNAME="FALSE" |
There was a problem hiding this comment.
It seems that the previous variant is correct:
| $(package)_config_opts_darwin=-DCMAKE_PLATFORM_HAS_INSTALLNAME="FALSE" | |
| $(package)_config_opts_darwin=-DCMAKE_INSTALL_NAME_TOOL=true |
|
FWIW, Debian provides |
|
Boost 1.87.0 is out (https://www.boost.org/users/history/version_1_87_0.html). Note that we no-longer care about |
This has a few advantages over the old method of simply copying headers: - Installs proper cmake files which can be picked up by our buildsystem - Only installs necessary headers, not all of boost The only drawback is that it builds a few libs that we end up throwing away. date_time and test can both be optionally used header-only (which we do), but boost's CMake buildsystem doesn't expose an option to skip building them.
43bd397 to
5ecaad0
Compare
|
Updated:
|
boostorg/test#426 has just been merged. |
Here is an updated branch with Boost bumped to 1.88.0, and it avoids any compilation altogether. Feel free to pick it up. |
|
@hebasto Want to try putting that behind a variable and upstreaming it? It'd be nice if we didn't have to carry that patch. |
Sure thing! Done in boostorg/test#445. |
Here is an updated branch based on the upstream changes. |
boostorg/test#445 has just been merged. |
…stem 6c2538d depends: Bump boost to 1.88.0 and use new CMake buildsystem (Cory Fields) Pull request description: Originally #30434. This has a few advantages over the old method of simply copying headers: - Installs proper CMake files which can be picked up by our buildsystem - Only installs necessary headers, not all of Boost Pulls in upstreamed boostorg/test#445. ACKs for top commit: willcl-ark: tACK 6c2538d hebasto: re-ACK 6c2538d, only rebased since my previous [review](#32665 (review)). Tree-SHA512: fc3fce77b21c8ea500370841f44f1cc87e0bb09cdde55f75d2f90853cb06a6f8c73ac6ca9ca3e91a879e9f95dd59aa40254c1b04e7a168c52fa1b31cc5b7f537
Marked as draft because this is much more relevant after we've switched to CMake.
This has a few advantages over the old method of simply copying headers:
The only drawback is that it builds a few libs that we end up throwing away. date_time and test can both be optionally used header-only (which we do), but boost's CMake buildsystem doesn't expose an option to skip building them.