-
Notifications
You must be signed in to change notification settings - Fork 36.3k
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
CMake-based build system tracking issue #28607
Comments
Buster Backports has 3.18: https://packages.debian.org/buster-backports/cmake |
Also, on a general note, it would be good to have a "cheat sheet" table for each configure option to list the corresponding cmake option. Maybe also one auto-generated and enforced with a script, to check equality, similar to curl/curl#11964 |
Thanks! It is available here. It has been added to the top post. |
The next PR to review is hebasto#32. |
The CMake minimum required version has been bumped up to 3.16 in hebasto#33. |
libbitcoin-kernel and bitcoin-chainstate should be on this list too? |
Sure. Added. |
The new Building Bitcoin Core with Visual Studio doc has been added to the issue description. |
+1 |
Heads up: here are suggestions regarding the current features that are not expected being ported to the CMake-based build system: |
080763a build: Drop `ALLOW_HOST_PACKAGES` support in depends (Hennadii Stepanov) Pull request description: The `ALLOW_HOST_PACKAGES` variable was introduced in #10508 "to speed up build and avoid timeout". It is no longer the case for our CI infrastructure, which uses self- hosted persistent workers and depends caching. In the current circumstances, it does not seem worth porting this feature to the upcoming [CMake-based](#28607) build system. ACKs for top commit: fanquake: ACK 080763a - I can't imagine this option got any use outside our CI. It's also mostly just at odds with the idea of a self-contained dependency builder. TheCharlatan: ACK 080763a Tree-SHA512: 36f52690be913479c5d12be36760b8de1a6e891fe7c2cf98a7b8d6561006a6b18631e431351d79e97edb9409f9902d032aedf7b963aa7615e54b59fc2a58f7d6
Next one: Add MULTIPROCESS option. |
What's next? It would be useful to have a link to build instructions too, not just the cheat cheat (or just add the standard In noticed that in your |
WIP :) Your testing and reviewing hebasto#163 will be much appreciated! |
The main part of the #28607 (comment) has all checkboxes checked. Thanks to all reviewers and testers! Keeping working :) |
Closing. See #30454. |
This issue will be updated to reflect the current state of CMake integration.
A brief historical context:
How reviewing happens:
The planned chunks of work:
CMakeLists.txt
andconfig/bitcoin-config.h
files -- build: Add CMake-based build system (1 of N) hebasto/bitcoin#5leveldb
build target -- build: Add CMake-based build system (2 of N) hebasto/bitcoin#6bitcoind
build target -- build: Add CMake-based build system (3 of N) hebasto/bitcoin#7libnatpmp
,libminiupnpc
,libzmq
andsystemtap-sdt
optional packages support -- build: Add CMake-based build system (5 of N) hebasto/bitcoin#13bench_bitcoin
andtest_bitcoin
-- build: Add CMake-based build system (6 of N) hebasto/bitcoin#15BuildSee RFC: Deprecate libconsensus #29189libbitcoinconsensus
library -- cmake: Buildlibbitcoinconsensus
library hebasto/bitcoin#41bitcoin-qt
executable hebasto/bitcoin#77MULTIPROCESS
option hebasto/bitcoin#118libbitcoin-kernel
andbitcoin-chainstate
-- cmake: Buildlibbitcoinkernel
andbitcoin-chainstate
hebasto/bitcoin#134Building for AndroidSee build, test, doc: Temporarily remove Android-related stuff #30049The current minimum required CMake version is 3.13, which is the system package on Debian 10. Considering the timings of Debian 10 LTS EOL and integrating CMake into this repo, it seems reasonable to bump the minimum supported version up to 3.16, which is the system package on Ubuntu 20.04 LTS.To hold the 100% feature parity, the current CMake-based build system implementation can autodetect an optional package and enable it as Autotools-based one does. However, it was suggested to make all optional package opt-in by default. See:
build: Add CMake-based build system (5 of N) hebasto/bitcoin#12 (comment)
build: Add CMake-based build system (5 of N) hebasto/bitcoin#12 (comment)
build: Add CMake-based build system (5 of N) hebasto/bitcoin#13 (comment)
Make all optional package opt-in by default
Autotools vs CMake Feature Parity Table is available here.
To list CMake's options, one might add the
-LH
option during configuring step.Updated build docs:
The text was updated successfully, but these errors were encountered: