cmake: Add MULTIPROCESS option

This commit is contained in:
Hennadii Stepanov
2024-08-06 18:23:24 +01:00
parent bb1a450dcb
commit 90cec4d251
5 changed files with 88 additions and 0 deletions

View File

@@ -31,6 +31,9 @@ add_dependencies(bitcoin_clientversion generate_build_info)
add_subdirectory(crypto)
add_subdirectory(univalue)
add_subdirectory(util)
if(WITH_MULTIPROCESS)
add_subdirectory(ipc)
endif()
#=============================
# secp256k1 subtree
@@ -297,6 +300,18 @@ if(BUILD_DAEMON)
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
)
endif()
if(WITH_MULTIPROCESS)
add_executable(bitcoin-node
bitcoind.cpp
init/bitcoin-node.cpp
)
target_link_libraries(bitcoin-node
core_interface
bitcoin_node
bitcoin_ipc
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
)
endif()
add_library(bitcoin_cli STATIC EXCLUDE_FROM_ALL

18
src/ipc/CMakeLists.txt Normal file
View File

@@ -0,0 +1,18 @@
# Copyright (c) 2023-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.
add_library(bitcoin_ipc STATIC EXCLUDE_FROM_ALL
capnp/protocol.cpp
interfaces.cpp
process.cpp
)
target_capnp_sources(bitcoin_ipc ${PROJECT_SOURCE_DIR}
capnp/echo.capnp capnp/init.capnp
)
target_link_libraries(bitcoin_ipc
PRIVATE
core_interface
)

View File

@@ -243,6 +243,23 @@ if(WIN32)
set_target_properties(bitcoin-qt PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
if(WITH_MULTIPROCESS)
add_executable(bitcoin-gui
main.cpp
../init/bitcoin-gui.cpp
)
target_link_libraries(bitcoin-gui
core_interface
bitcoinqt
bitcoin_node
bitcoin_ipc
)
import_plugins(bitcoin-gui)
if(WIN32)
set_target_properties(bitcoin-gui PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
endif()
if(BUILD_GUI_TESTS)
add_subdirectory(test)
endif()

View File

@@ -158,6 +158,28 @@ if(ENABLE_WALLET)
add_subdirectory(${PROJECT_SOURCE_DIR}/src/wallet/test wallet)
endif()
if(WITH_MULTIPROCESS)
add_library(bitcoin_ipc_test STATIC EXCLUDE_FROM_ALL
ipc_test.cpp
)
target_capnp_sources(bitcoin_ipc_test ${PROJECT_SOURCE_DIR}
ipc_test.capnp
)
target_link_libraries(bitcoin_ipc_test
PRIVATE
core_interface
univalue
)
target_sources(test_bitcoin
PRIVATE
ipc_tests.cpp
)
target_link_libraries(test_bitcoin bitcoin_ipc_test)
endif()
function(add_boost_test source_file)
if(NOT EXISTS ${source_file})
return()