The final command should only build bitcoin-qt and bitcoin-gui, but instead, it unnecessarily rebuilds other targets as well.
This occurs because optional definitions like USE_DBUS and USE_QRCODE are included in bitcoin-build-config.h. Modifying these settings alters the header, triggering a recompilation of every target that consumes it.
This PR resolves the issue. While beneficial on its own, it also serves as a necessary prerequisite for effectively addressing #29914.
hebasto added the label Build system on Apr 14, 2026
DrahtBot
commented at 5:33 PM on April 14, 2026:
contributor
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
#35011 (ci, iwyu: Fix warnings in src/script and treat them as errors by BrandonOdiwuor)
#33828 (Check required interfaces before generating manpages by 151henry151)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
BrandonOdiwuor
commented at 9:31 AM on April 17, 2026:
contributor
Tested that only Qt-related targets are rebuilt when BUILD_GUI=ON is enabled. Non-GUI targets (bitcoind, bitcoin-node, bitcoin, bitcoin_clientversion, bitcoin_util, etc.) remain untouched.
<details>
<summary>Running `cmake --build build` after GUI is enabled</summary
cmake --build build_m/ -j3
[ 0%] Generating bitcoin-build-info.h
[ 1%] Built target univalue
[ 2%] Built target bitcoin_consensus
[ 2%] Built target secp256k1_precomputed
[ 3%] Built target crc32c
[ 8%] Built target bitcoin_crypto
[ 11%] Built target minisketch
[ 11%] Built target mputil
[ 18%] Built target leveldb
[ 19%] Built target bitcoin_cli
[ 38%] Built target bitcoinqt_lrelease
[ 39%] Built target secp256k1
[ 39%] Built target multiprocess
[ 39%] Built target mpgen
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/mining.cpp.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/interfaces.cpp.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/common.capnp.proxy-client.c++.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/common.capnp.proxy-server.c++.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/common.capnp.proxy-types.c++.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/init.capnp.proxy-client.c++.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/init.capnp.proxy-server.c++.o
[ 39%] Built target generate_build_info
[ 39%] Building CXX object src/CMakeFiles/bitcoin_clientversion.dir/clientversion.cpp.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/init.capnp.proxy-types.c++.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/mining.capnp.proxy-client.c++.o
[ 39%] Linking CXX static library ../lib/libbitcoin_clientversion.a
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/mining.capnp.proxy-server.c++.o
[ 39%] Built target bitcoin_clientversion
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/mining.capnp.proxy-types.c++.o
[ 39%] Building CXX object src/util/CMakeFiles/bitcoin_util.dir/check.cpp.o
[ 39%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/rpc.capnp.proxy-client.c++.o
[ 40%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/rpc.capnp.proxy-server.c++.o
[ 40%] Building CXX object src/util/CMakeFiles/bitcoin_util.dir/fs_helpers.cpp.o
[ 40%] Building CXX object src/ipc/CMakeFiles/bitcoin_ipc.dir/capnp/rpc.capnp.proxy-types.c++.o
[ 41%] Building CXX object src/util/CMakeFiles/bitcoin_util.dir/syserror.cpp.o
[ 41%] Linking CXX static library ../../lib/libbitcoin_ipc.a
[ 41%] Building CXX object src/CMakeFiles/bitcoin_common.dir/coins.cpp.o
[ 41%] Building CXX object src/util/CMakeFiles/bitcoin_util.dir/tokenpipe.cpp.o
[ 41%] Building CXX object src/util/CMakeFiles/bitcoin_util.dir/__/random.cpp.o
[ 41%] Building CXX object src/CMakeFiles/bitcoin_common.dir/common/license_info.cpp.o
[ 43%] Building CXX object src/CMakeFiles/bitcoin_common.dir/common/netif.cpp.o
[ 43%] Building CXX object src/util/CMakeFiles/bitcoin_util.dir/__/randomenv.cpp.o
[ 43%] Building CXX object src/CMakeFiles/bitcoin_common.dir/common/run_command.cpp.o
[ 43%] Linking CXX static library ../../lib/libbitcoin_util.a
[ 43%] Building CXX object src/CMakeFiles/bitcoin_common.dir/common/settings.cpp.o
[ 47%] Built target bitcoin_util
[ 47%] Building CXX object src/CMakeFiles/bitcoin_common.dir/common/system.cpp.o
[ 47%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/coinselection.cpp.o
[ 47%] Building CXX object src/CMakeFiles/bitcoin_common.dir/external_signer.cpp.o
[ 47%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/crypter.cpp.o
[ 52%] Built target bitcoin_ipc
[ 52%] Building CXX object src/CMakeFiles/bitcoin_node.dir/addrdb.cpp.o
[ 52%] Building CXX object src/CMakeFiles/bitcoin_common.dir/init/common.cpp.o
[ 52%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/db.cpp.o
[ 52%] Building CXX object src/CMakeFiles/bitcoin_node.dir/addrman.cpp.o
[ 52%] Building CXX object src/CMakeFiles/bitcoin_common.dir/net_permissions.cpp.o
[ 52%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/dump.cpp.o
[ 52%] Building CXX object src/CMakeFiles/bitcoin_node.dir/banman.cpp.o
[ 52%] Building CXX object src/CMakeFiles/bitcoin_common.dir/netbase.cpp.o
[ 53%] Building CXX object src/CMakeFiles/bitcoin_node.dir/blockencodings.cpp.o
[ 54%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/external_signer_scriptpubkeyman.cpp.o
[ 55%] Building CXX object src/CMakeFiles/bitcoin_common.dir/protocol.cpp.o
[ 55%] Building CXX object src/CMakeFiles/bitcoin_node.dir/init.cpp.o
[ 55%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/feebumper.cpp.o
[ 56%] Linking CXX static library ../lib/libbitcoin_common.a
[ 56%] Building CXX object src/CMakeFiles/bitcoin_node.dir/mapport.cpp.o
[ 56%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/fees.cpp.o
[ 56%] Building CXX object src/CMakeFiles/bitcoin_node.dir/net.cpp.o
[ 56%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/interfaces.cpp.o
[ 58%] Building CXX object src/CMakeFiles/bitcoin_node.dir/net_processing.cpp.o
[ 58%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/caches.cpp.o
[ 58%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/load.cpp.o
[ 58%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/migrate.cpp.o
[ 58%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/chainstatemanager_args.cpp.o
[ 58%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/receive.cpp.o
[ 58%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/interfaces.cpp.o
[ 65%] Built target bitcoin_common
[ 65%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/kernel_notifications.cpp.o
[ 66%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/addresses.cpp.o
[ 67%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/mempool_persist.cpp.o
[ 67%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/txreconciliation.cpp.o
[ 67%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/backup.cpp.o
[ 68%] Building CXX object src/CMakeFiles/bitcoin_node.dir/node/warnings.cpp.o
[ 68%] Building CXX object src/CMakeFiles/bitcoin_node.dir/policy/fees/block_policy_estimator.cpp.o
[ 68%] Building CXX object src/CMakeFiles/bitcoin_node.dir/rpc/blockchain.cpp.o
[ 68%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/coins.cpp.o
[ 69%] Building CXX object src/CMakeFiles/bitcoin_node.dir/rpc/external_signer.cpp.o
[ 69%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/encrypt.cpp.o
[ 69%] Building CXX object src/CMakeFiles/bitcoin_node.dir/rpc/mining.cpp.o
[ 69%] Building CXX object src/CMakeFiles/bitcoin_node.dir/rpc/net.cpp.o
[ 69%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/signmessage.cpp.o
[ 69%] Building CXX object src/CMakeFiles/bitcoin_node.dir/rpc/node.cpp.o
[ 69%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/spend.cpp.o
[ 69%] Building CXX object src/CMakeFiles/bitcoin_node.dir/rpc/server.cpp.o
[ 69%] Building CXX object src/CMakeFiles/bitcoin_node.dir/txmempool.cpp.o
[ 70%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/transactions.cpp.o
[ 72%] Building CXX object src/CMakeFiles/bitcoin_node.dir/validation.cpp.o
[ 72%] Building CXX object src/CMakeFiles/bitcoin_node.dir/wallet/init.cpp.o
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/util.cpp.o
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/rpc/wallet.cpp.o
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/scriptpubkeyman.cpp.o
[ 72%] Linking CXX static library ../lib/libbitcoin_node.a
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/spend.cpp.o
[ 72%] Building CXX object src/CMakeFiles/bitcoin.dir/bitcoin.cpp.o
[ 72%] Linking CXX executable ../bin/bitcoin
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/sqlite.cpp.o
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/wallet.cpp.o
[ 72%] Building CXX object src/wallet/CMakeFiles/bitcoin_wallet.dir/walletdb.cpp.o
[ 72%] Built target bitcoin
[ 72%] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[ 72%] Linking CXX static library ../../lib/libbitcoin_wallet.a
[ 72%] Linking CXX executable ../bin/bitcoin-cli
[ 72%] Built target bitcoin-cli
[ 74%] Built target bitcoin_wallet
[ 74%] Built target bitcoinqt_autogen_timestamp_deps
[ 84%] Built target bitcoin_node
[ 84%] Building CXX object src/CMakeFiles/bitcoind.dir/bitcoind.cpp.o
[ 84%] Building CXX object src/CMakeFiles/bitcoin-node.dir/bitcoind.cpp.o
[ 84%] Automatic MOC and UIC for target bitcoinqt
[ 86%] Linking CXX executable ../bin/bitcoind
[ 86%] Linking CXX executable ../bin/bitcoin-node
[ 86%] Built target bitcoinqt_autogen
[ 86%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoinqt_autogen/mocs_compilation.cpp.o
[ 87%] Built target bitcoind
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoin.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoingui.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/clientmodel.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/intro.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/modaloverlay.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/notificator.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/optionsdialog.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/optionsmodel.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/rpcconsole.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/splashscreen.cpp.o
[ 89%] Built target bitcoin-node
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/utilitydialog.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/addresstablemodel.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/coincontroldialog.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/createwalletdialog.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/paymentserver.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/qrimagewidget.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/receivecoinsdialog.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/receiverequestdialog.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/recentrequeststablemodel.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/sendcoinsdialog.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/signverifymessagedialog.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactiondesc.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletcontroller.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletmodel.cpp.o
[ 93%] Linking CXX static library ../../lib/libbitcoinqt.a
[ 98%] Built target bitcoinqt
[ 98%] Built target bitcoin-qt_autogen_timestamp_deps
[ 98%] Built target bitcoin-gui_autogen_timestamp_deps
[ 98%] Built target bitcoin-qt_autogen
[ 98%] Built target bitcoin-gui_autogen
[ 98%] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[100%] Building CXX object src/qt/CMakeFiles/bitcoin-gui.dir/main.cpp.o
[100%] Linking CXX executable ../../bin/bitcoin-qt
[100%] Linking CXX executable ../../bin/bitcoin-gui
[100%] Built target bitcoin-qt
[100%] Built target bitcoin-gui
</details>
PR at 9f65a7a4942c1addf3efed47a64a54b0889215bf
<details>
<summary>Running `cmake --build build` after GUI is enabled</summary
cmake --build build -j3
[ 0%] Generating bitcoin-build-info.h
[ 1%] Built target univalue
[ 1%] Built target secp256k1_precomputed
[ 2%] Built target bitcoin_consensus
[ 3%] Built target crc32c
[ 8%] Built target bitcoin_crypto
[ 11%] Built target minisketch
[ 11%] Built target mputil
[ 12%] Built target bitcoin_cli
[ 31%] Built target bitcoinqt_lrelease
[ 38%] Built target leveldb
[ 39%] Built target secp256k1
[ 39%] Built target multiprocess
[ 39%] Built target mpgen
[ 45%] Built target bitcoin_ipc
[ 45%] Built target generate_build_info
[ 45%] Built target bitcoin_clientversion
[ 51%] Built target bitcoin_util
[ 56%] Built target bitcoin_wallet
[ 56%] Built target bitcoinqt_autogen_timestamp_deps
[ 67%] Built target bitcoin_common
[ 67%] Built target bitcoin
[ 67%] Automatic MOC and UIC for target bitcoinqt
[ 67%] Built target bitcoin-cli
[ 84%] Built target bitcoin_node
[ 86%] Built target bitcoin-node
[ 87%] Built target bitcoind
[ 87%] Built target bitcoinqt_autogen
[ 87%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bantablemodel.cpp.o
[ 87%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoinqt_autogen/mocs_compilation.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoin.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoinaddressvalidator.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoinamountfield.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoingui.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/bitcoinunits.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/clientmodel.cpp.o
[ 88%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/csvmodelwriter.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/freespacechecker.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/guiutil.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/initexecutor.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/intro.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/modaloverlay.cpp.o
[ 89%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/networkstyle.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/notificator.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/optionsdialog.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/optionsmodel.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/peertablemodel.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/peertablesortproxy.cpp.o
[ 90%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/platformstyle.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/qvalidatedlineedit.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/qvaluecombobox.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/rpcconsole.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/splashscreen.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/trafficgraphwidget.cpp.o
[ 91%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/utilitydialog.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/qrc_bitcoin.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/qrc_bitcoin_locale.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/addressbookpage.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/addresstablemodel.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/askpassphrasedialog.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/coincontroldialog.cpp.o
[ 93%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/coincontroltreewidget.cpp.o
[ 94%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/createwalletdialog.cpp.o
[ 94%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/editaddressdialog.cpp.o
[ 94%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/openuridialog.cpp.o
[ 94%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/overviewpage.cpp.o
[ 94%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/paymentserver.cpp.o
[ 94%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/psbtoperationsdialog.cpp.o
[ 95%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/qrimagewidget.cpp.o
[ 95%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/receivecoinsdialog.cpp.o
[ 95%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/receiverequestdialog.cpp.o
[ 95%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/recentrequeststablemodel.cpp.o
[ 95%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/sendcoinsdialog.cpp.o
[ 95%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/sendcoinsentry.cpp.o
[ 96%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/signverifymessagedialog.cpp.o
[ 96%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactiondesc.cpp.o
[ 96%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactiondescdialog.cpp.o
[ 96%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactionfilterproxy.cpp.o
[ 96%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactionoverviewwidget.cpp.o
[ 96%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactionrecord.cpp.o
[ 97%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactiontablemodel.cpp.o
[ 97%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/transactionview.cpp.o
[ 97%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletcontroller.cpp.o
[ 97%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletframe.cpp.o
[ 97%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletmodel.cpp.o
[ 97%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletmodeltransaction.cpp.o
[ 98%] Building CXX object src/qt/CMakeFiles/bitcoinqt.dir/walletview.cpp.o
[ 98%] Linking CXX static library ../../lib/libbitcoinqt.a
[ 98%] Built target bitcoinqt
[ 98%] Built target bitcoin-qt_autogen_timestamp_deps
[ 98%] Built target bitcoin-gui_autogen_timestamp_deps
[ 98%] Automatic MOC and UIC for target bitcoin-gui
[ 98%] Automatic MOC and UIC for target bitcoin-qt
[ 98%] Built target bitcoin-qt_autogen
[ 98%] Built target bitcoin-gui_autogen
[ 98%] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[ 98%] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/__/init/bitcoin-qt.cpp.o
[100%] Building CXX object src/qt/CMakeFiles/bitcoin-gui.dir/main.cpp.o
[100%] Building CXX object src/qt/CMakeFiles/bitcoin-gui.dir/__/init/bitcoin-gui.cpp.o
[100%] Linking CXX executable ../../bin/bitcoin-qt
[100%] Linking CXX executable ../../bin/bitcoin-gui
[100%] Built target bitcoin-qt
[100%] Built target bitcoin-gui
</details>
fanquake
commented at 9:58 AM on April 17, 2026:
member
but it is also a necessary prerequisite for effectively addressing #29914.
It would be good to see the changes that require this. The same logic applies to other optional dependencies, so it'd be good to be clear about what should live in build-config.h, or shouldn't, and why this needs to be moved out.
DrahtBot added the label CI failed on Apr 19, 2026
hebasto force-pushed on Apr 19, 2026
hebasto force-pushed on Apr 19, 2026
DrahtBot removed the label CI failed on Apr 19, 2026
hebasto force-pushed on Apr 24, 2026
hebasto renamed this: cmake: Remove GUI-specific definitions from `bitcoin-build-config.h` cmake: Remove optional definitions from `bitcoin-build-config.h` on Apr 24, 2026
hebasto force-pushed on Apr 24, 2026
DrahtBot added the label CI failed on Apr 24, 2026
hebasto force-pushed on Apr 24, 2026
hebasto
commented at 3:24 PM on April 24, 2026:
member
but it is also a necessary prerequisite for effectively addressing #29914.
It would be good to see the changes that require this. The same logic applies to other optional dependencies, so it'd be good to be clear about what should live in build-config.h, or shouldn't, and why this needs to be moved out.
Reworked. The PR description has been updated.
DrahtBot removed the label CI failed on Apr 24, 2026
hebasto
commented at 1:16 PM on April 27, 2026:
member
151henry151
commented at 9:31 PM on April 29, 2026:
contributor
PR #33828 has gen-manpages.py read build/src/bitcoin-build-config.h for a few macros (HAVE_SYSTEM, ENABLE_WALLET, WITH_ZMQ). As optional defines move out of that header: it would be nice to have a single source of truth for “what was enabled” for this kind of tooling, though combining sources (header where it still exists, CMakeCache.txt or similar otherwise) may be fine. That ties into the earlier thread here about what belongs in build-config.h vs elsewhere—any guidance on what you’d prefer for scripts like this?
fanquake
commented at 12:38 PM on May 21, 2026:
member
Concept NACK
This change seems more like a side-effect of the approach taken in #35098 (where it's used to share objects between builds), rather than something that makes sense standalone; and I'm not sure about the approach in #35098, given it doesn't work for something like #25573.
modifying optional settings to reconfigure the build system triggers unnecessary rebuilds.
I think the point of a (shared) config header, is to trigger rebuilds of modules that use it, when the header/config changes. If it's been determined that certain things shouldn't be in the config header, then it'd be good to explain the difference between what is being moved out here, and what is being left in, rather than just what is needed for #35098, or calling the rebuilding "unnecessary".
As pointed out above, it may also be useful to have a single point of "truth" of our configuration, and that would seem to get more complicated with the changes here.
151henry151
commented at 2:21 AM on May 22, 2026:
contributor
For scripts/tooling, it would be nice to agree on one canonical source for enabled features.
It would be straightforward to update gen-manpages.py to match whatever source maintainers prefer, such as bitcoin-build-config.h, CMakeCache.txt, or some other generated file.
DrahtBot added the label Needs rebase on May 26, 2026
hebasto force-pushed on May 28, 2026
hebasto marked this as a draft on May 28, 2026
hebasto
commented at 2:17 PM on May 28, 2026:
member
This change seems more like a side-effect of the approach taken in #35098 (where it's used to share objects between builds), rather than something that makes sense standalone;
I still think that disentangling different parts of the build system is beneficial.
Converting to a draft until the other concerns raised by reviewers are addressed.
DrahtBot removed the label Needs rebase on May 28, 2026
DrahtBot added the label CI failed on May 28, 2026
DrahtBot
commented at 5:15 PM on May 28, 2026:
contributor
<!--85328a0da195eb286784d51f73fa0af9-->
🚧 At least one of the CI tasks failed.
<sub>Task lint: https://github.com/bitcoin/bitcoin/actions/runs/26580153237/job/78322459544</sub>
<sub>LLM reason (✨ experimental): CI failed due to a lint error (includes_build_config): src/node/interfaces.cpp includes bitcoin-build-config.h but doesn’t use any of its declared symbols.</sub>
<details><summary>Hints</summary>
Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:
Possibly due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the
affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
</details>
cmake: Move `USE_DBUS` to `bitcoinqt` target
This removes the `USE_DBUS` definition from `bitcoin-build-config.h`,
reducing the dependency of non-GUI code on GUI-specific definitions.
a4cdf7b1e0
cmake: Move `USE_QRCODE` to `bitcoinqt` target
This removes the `USE_QRCODE` definition from `bitcoin-build-config.h`,
reducing the dependency of non-GUI code on GUI-specific definitions.
Additionally, `QRencode::QRencode` is now linked only when wallet is
enabled, because the `qrencode.h` header is used exclusively in
wallet-specific code.
716896100f
cmake: Move `ENABLE_WALLET` to `bitcoinqt` and `test_bitcoin-qt` targets
This removes the `ENABLE_WALLET` definition from
`bitcoin-build-config.h`, reducing the dependency of core code on the
optional definitions.
73ef841b67
cmake: Move `ENABLE_TRACING` to `USDT::headers` target
This removes the `ENABLE_TRACING` definition from
`bitcoin-build-config.h`, reducing the dependency of core code on the
optional definitions.
Additionally, the `FindUSDT` module is refactored to use
`target_include_directories` instead of `set_target_properties`.
afe538c455
cmake: Move `ENABLE_EXTERNAL_SIGNER` to `bitcoin_common` target
This removes the `ENABLE_EXTERNAL_SIGNER` definition from
`bitcoin-build-config.h`, reducing the dependency of core code on the
optional definitions.
04a1ea6686
hebasto force-pushed on May 29, 2026
DrahtBot added the label Needs rebase on May 29, 2026
DrahtBot
commented at 11:32 AM on May 29, 2026:
contributor
<!--cf906140f33d8803c4a75a2196329ecb-->
🐙 This pull request conflicts with the target branch and needs rebase.
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-06-04 07:51 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me