build: depends makes libmultiprocess by default

This causes IPC binaries (bitcoin-node, bitcoin-gui) to be included
in releases.

The effect on CI is that this causes more depends builds to build IPC
binaries, but still the only build running functional tests with them
is the i686_multiprocess one.

Except for Windows.
This commit is contained in:
Sjors Provoost
2025-04-17 14:40:29 +02:00
parent 8405fdb06e
commit 16bce9ac4c
7 changed files with 17 additions and 15 deletions

View File

@@ -39,7 +39,8 @@ NO_QR ?=
NO_WALLET ?=
NO_ZMQ ?=
NO_USDT ?=
MULTIPROCESS ?=
# Default NO_IPC value is 1 on Windows
NO_IPC ?= $(if $(findstring mingw32,$(HOST)),1,)
LTO ?=
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
@@ -161,7 +162,7 @@ qt_native_packages_$(NO_QT) = $(qt_native_packages)
wallet_packages_$(NO_WALLET) = $(sqlite_packages)
zmq_packages_$(NO_ZMQ) = $(zmq_packages)
multiprocess_packages_$(MULTIPROCESS) = $(multiprocess_packages)
ipc_packages_$(NO_IPC) = $(ipc_packages)
usdt_packages_$(NO_USDT) = $(usdt_$(host_os)_packages)
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(boost_packages_) $(libevent_packages_) $(qt_packages_) $(wallet_packages_) $(usdt_packages_)
@@ -171,8 +172,8 @@ ifneq ($(zmq_packages_),)
packages += $(zmq_packages)
endif
ifeq ($(multiprocess_packages_),)
packages += $(multiprocess_packages)
ifneq ($(ipc_packages_),)
packages += $(ipc_packages)
native_packages += $(multiprocess_native_packages)
endif
@@ -231,7 +232,7 @@ $(host_prefix)/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(fina
-e 's|@zmq_packages@|$(zmq_packages_)|' \
-e 's|@wallet_packages@|$(wallet_packages_)|' \
-e 's|@usdt_packages@|$(usdt_packages_)|' \
-e 's|@multiprocess@|$(MULTIPROCESS)|' \
-e 's|@ipc_packages@|$(ipc_packages_)|' \
$< > $@
touch $@

View File

@@ -96,7 +96,7 @@ The following can be set when running make: `make FOO=bar`
- `NO_ZMQ`: Don't download/build/cache packages needed for enabling ZeroMQ
- `NO_WALLET`: Don't download/build/cache libs needed to enable the wallet (SQLite)
- `NO_USDT`: Don't download/build/cache packages needed for enabling USDT tracepoints
- `MULTIPROCESS`: Build libmultiprocess (experimental)
- `NO_IPC`: Don't build Capn Proto and libmultiprocess packages. Default on Windows.
- `DEBUG`: Disable some optimizations and enable more runtime checking
- `HOST_ID_SALT`: Optional salt to use when generating host package ids
- `BUILD_ID_SALT`: Optional salt to use when generating build package ids

View File

@@ -20,7 +20,7 @@ sqlite_packages=sqlite
zmq_packages=zeromq
multiprocess_packages = capnp
ipc_packages = capnp
multiprocess_native_packages = native_libmultiprocess native_capnp
usdt_linux_packages=systemtap

View File

@@ -165,11 +165,12 @@ else()
set(WITH_USDT ON CACHE BOOL "")
endif()
if("@multiprocess@" STREQUAL "1")
set(ipc_packages @ipc_packages@)
if("${ipc_packages}" STREQUAL "")
set(ENABLE_IPC OFF CACHE BOOL "")
else()
set(ENABLE_IPC ON CACHE BOOL "")
set(MPGEN_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/mpgen" CACHE FILEPATH "")
set(CAPNP_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnp" CACHE FILEPATH "")
set(CAPNPC_CXX_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnpc-c++" CACHE FILEPATH "")
else()
set(ENABLE_IPC OFF CACHE BOOL "")
endif()