aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2022-05-04 16:34:44 +0100
committerfanquake <fanquake@gmail.com>2022-05-04 16:34:57 +0100
commit9183c66cc6ae173e0f2efe52b09cb9a8e64d5550 (patch)
tree54091be872d9db09e86f778c46e1a1b167bd6881
parentd17bbc3c484edae2552a28471d8879fca9664bcc (diff)
parentc0f5cc14ef9fae2b2de4222ee061729629ebb6b4 (diff)
downloadbitcoin-9183c66cc6ae173e0f2efe52b09cb9a8e64d5550.tar.xz
Merge bitcoin/bitcoin#25046: build: Fix `libmultiprocess` cross-compiling to Linux hosts
c0f5cc14ef9fae2b2de4222ee061729629ebb6b4 build: Fix `libmultiprocess` cross-compiling to Linux hosts (Hennadii Stepanov) Pull request description: To successfully call the [`capnp_generate_cpp()`](https://github.com/chaincodelabs/libmultiprocess/blob/d576d975debdc9090bd2582f83f49c76c0061698/CMakeLists.txt#L45) function, the `libmultiprocess` build system must be provided with paths to the native `capnp` and `capnpc-c++` tools. This [comment](https://github.com/bitcoin/bitcoin/issues/24387#issuecomment-1054776195) points the same: > I think `packages/libmultiprocess.mk` probably needs to be passing a `-DCAPNP_EXECUTABLE=.../depends/arm-linux-gnueabihf/native/bin/capnp` argument to cmake. Also the package should have dependencies on both `capnp` and `native_capnp`. Fixes bitcoin/bitcoin#24387. ACKs for top commit: ryanofsky: Code review ACK c0f5cc14ef9fae2b2de4222ee061729629ebb6b4 Tree-SHA512: 2986d8bf98d2761eceba21b1897145c5185a0922d4c2084e8812d4d07dc94237e5c2809036641c4f7c491a3414727fff328cba91ce138b89e37ec5cba61d8f61
-rw-r--r--depends/funcs.mk2
-rw-r--r--depends/packages/libmultiprocess.mk10
2 files changed, 11 insertions, 1 deletions
diff --git a/depends/funcs.mk b/depends/funcs.mk
index 75fa1ed43f..a00f380236 100644
--- a/depends/funcs.mk
+++ b/depends/funcs.mk
@@ -175,7 +175,7 @@ $(1)_cmake=env CC="$$($(1)_cc)" \
CXX="$$($(1)_cxx)" \
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
LDFLAGS="$$($(1)_ldflags)" \
- cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)"
+ cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" $$($(1)_cmake_opts)
ifeq ($($(1)_type),build)
$(1)_cmake += -DCMAKE_INSTALL_RPATH:PATH="$$($($(1)_type)_prefix)/lib"
else
diff --git a/depends/packages/libmultiprocess.mk b/depends/packages/libmultiprocess.mk
index 864e33bc9a..9b66207fc5 100644
--- a/depends/packages/libmultiprocess.mk
+++ b/depends/packages/libmultiprocess.mk
@@ -4,6 +4,16 @@ $(package)_download_path=$(native_$(package)_download_path)
$(package)_file_name=$(native_$(package)_file_name)
$(package)_sha256_hash=$(native_$(package)_sha256_hash)
$(package)_dependencies=native_$(package) capnp
+ifneq ($(host),$(build))
+$(package)_dependencies += native_capnp
+endif
+
+define $(package)_set_vars :=
+ifneq ($(host),$(build))
+$(package)_cmake_opts := -DCAPNP_EXECUTABLE="$$(native_capnp_prefixbin)/capnp"
+$(package)_cmake_opts += -DCAPNPC_CXX_EXECUTABLE="$$(native_capnp_prefixbin)/capnpc-c++"
+endif
+endef
define $(package)_config_cmds
$($(package)_cmake) .