-
Notifications
You must be signed in to change notification settings - Fork 37.7k
depends: bump boost to 1.87.0 and use new CMake buildsystem #30434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.