Skip to content

Commit 16bce9a

Browse files
committed
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.
1 parent 8405fdb commit 16bce9a

File tree

7 files changed

+17
-15
lines changed

7 files changed

+17
-15
lines changed

ci/test/00_setup_env_i686_multiprocess.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export CONTAINER_NAME=ci_i686_multiprocess
1111
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
1212
export CI_IMAGE_PLATFORM="linux/amd64"
1313
export PACKAGES="llvm clang g++-multilib"
14-
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
14+
export DEP_OPTS="DEBUG=1"
1515
export GOAL="install"
1616
export TEST_RUNNER_EXTRA="--v2transport --usecli"
1717
export BITCOIN_CONFIG="\

cmake/module/Maintenance.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function(add_maintenance_targets)
2323
return()
2424
endif()
2525

26-
foreach(target IN ITEMS bitcoin bitcoind bitcoin-qt bitcoin-cli bitcoin-tx bitcoin-util bitcoin-wallet test_bitcoin bench_bitcoin)
26+
foreach(target IN ITEMS bitcoin bitcoind bitcoin-node bitcoin-qt bitcoin-gui bitcoin-cli bitcoin-tx bitcoin-util bitcoin-wallet test_bitcoin bench_bitcoin)
2727
if(TARGET ${target})
2828
list(APPEND executables $<TARGET_FILE:${target}>)
2929
endif()

depends/Makefile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ NO_QR ?=
3939
NO_WALLET ?=
4040
NO_ZMQ ?=
4141
NO_USDT ?=
42-
MULTIPROCESS ?=
42+
# Default NO_IPC value is 1 on Windows
43+
NO_IPC ?= $(if $(findstring mingw32,$(HOST)),1,)
4344
LTO ?=
4445
FALLBACK_DOWNLOAD_PATH ?= https://bitcoincore.org/depends-sources
4546

@@ -161,7 +162,7 @@ qt_native_packages_$(NO_QT) = $(qt_native_packages)
161162
wallet_packages_$(NO_WALLET) = $(sqlite_packages)
162163

163164
zmq_packages_$(NO_ZMQ) = $(zmq_packages)
164-
multiprocess_packages_$(MULTIPROCESS) = $(multiprocess_packages)
165+
ipc_packages_$(NO_IPC) = $(ipc_packages)
165166
usdt_packages_$(NO_USDT) = $(usdt_$(host_os)_packages)
166167

167168
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_),)
171172
packages += $(zmq_packages)
172173
endif
173174

174-
ifeq ($(multiprocess_packages_),)
175-
packages += $(multiprocess_packages)
175+
ifneq ($(ipc_packages_),)
176+
packages += $(ipc_packages)
176177
native_packages += $(multiprocess_native_packages)
177178
endif
178179

@@ -231,7 +232,7 @@ $(host_prefix)/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(fina
231232
-e 's|@zmq_packages@|$(zmq_packages_)|' \
232233
-e 's|@wallet_packages@|$(wallet_packages_)|' \
233234
-e 's|@usdt_packages@|$(usdt_packages_)|' \
234-
-e 's|@multiprocess@|$(MULTIPROCESS)|' \
235+
-e 's|@ipc_packages@|$(ipc_packages_)|' \
235236
$< > $@
236237
touch $@
237238

depends/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ The following can be set when running make: `make FOO=bar`
9696
- `NO_ZMQ`: Don't download/build/cache packages needed for enabling ZeroMQ
9797
- `NO_WALLET`: Don't download/build/cache libs needed to enable the wallet (SQLite)
9898
- `NO_USDT`: Don't download/build/cache packages needed for enabling USDT tracepoints
99-
- `MULTIPROCESS`: Build libmultiprocess (experimental)
99+
- `NO_IPC`: Don't build Cap’n Proto and libmultiprocess packages. Default on Windows.
100100
- `DEBUG`: Disable some optimizations and enable more runtime checking
101101
- `HOST_ID_SALT`: Optional salt to use when generating host package ids
102102
- `BUILD_ID_SALT`: Optional salt to use when generating build package ids

depends/packages/packages.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ sqlite_packages=sqlite
2020

2121
zmq_packages=zeromq
2222

23-
multiprocess_packages = capnp
23+
ipc_packages = capnp
2424
multiprocess_native_packages = native_libmultiprocess native_capnp
2525

2626
usdt_linux_packages=systemtap

depends/toolchain.cmake.in

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,12 @@ else()
165165
set(WITH_USDT ON CACHE BOOL "")
166166
endif()
167167

168-
if("@multiprocess@" STREQUAL "1")
168+
set(ipc_packages @ipc_packages@)
169+
if("${ipc_packages}" STREQUAL "")
170+
set(ENABLE_IPC OFF CACHE BOOL "")
171+
else()
169172
set(ENABLE_IPC ON CACHE BOOL "")
170173
set(MPGEN_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/mpgen" CACHE FILEPATH "")
171174
set(CAPNP_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnp" CACHE FILEPATH "")
172175
set(CAPNPC_CXX_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/native/bin/capnpc-c++" CACHE FILEPATH "")
173-
else()
174-
set(ENABLE_IPC OFF CACHE BOOL "")
175176
endif()

doc/multiprocess.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ Specifying `-DENABLE_IPC=ON` requires [Cap'n Proto](https://capnproto.org/) to b
1616

1717
### Depends installation
1818

19-
Alternately the [depends system](../depends) can be used to avoid need to install local dependencies. A simple way to get started is to pass the `MULTIPROCESS=1` [dependency option](../depends#dependency-options) to make:
19+
Alternatively the [depends system](../depends) can be used to avoid needing to install local dependencies:
2020

2121
```
2222
cd <BITCOIN_SOURCE_DIRECTORY>
23-
make -C depends NO_QT=1 MULTIPROCESS=1
23+
make -C depends NO_QT=1
2424
# Set host platform to output of gcc -dumpmachine or clang -dumpmachine or check the depends/ directory for the generated subdirectory name
2525
HOST_PLATFORM="x86_64-pc-linux-gnu"
2626
cmake -B build --toolchain=depends/$HOST_PLATFORM/toolchain.cmake
@@ -29,7 +29,7 @@ build/bin/bitcoin -m node -regtest -printtoconsole -debug=ipc
2929
BITCOIN_CMD="bitcoin -m" build/test/functional/test_runner.py
3030
```
3131

32-
The `cmake` build will pick up settings and library locations from the depends directory, so there is no need to pass `-DENABLE_IPC=ON` as a separate flag when using the depends system (it's controlled by the `MULTIPROCESS=1` option).
32+
The `cmake` build will pick up settings and library locations from the depends directory, so there is no need to pass `-DENABLE_IPC=ON` as a separate flag when using the depends system (it's controlled by the `NO_IPC=1` option).
3333

3434
### Cross-compiling
3535

0 commit comments

Comments
 (0)