Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ci/test/00_setup_env_mac_native_fuzz.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ export OSX_SDK=""
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
export RUN_FUZZ_TESTS=true
export GOAL="all"
2 changes: 1 addition & 1 deletion ci/test/00_setup_env_native_fuzz.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export NO_DEPENDS=1
export RUN_UNIT_TESTS=false
export RUN_FUNCTIONAL_TESTS=false
export RUN_FUZZ_TESTS=true
export GOAL="install"
export GOAL="all"
export CI_CONTAINER_CAP="--cap-add SYS_PTRACE" # If run with (ASan + LSan), the container needs access to ptrace (https://github.com/google/sanitizers/issues/764)
export BITCOIN_CONFIG="\
-DBUILD_FOR_FUZZING=ON \
Expand Down
26 changes: 26 additions & 0 deletions cmake/module/InstallBinaryComponent.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright (c) 2025-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.

include_guard(GLOBAL)
include(GNUInstallDirs)

function(install_binary_component component)
cmake_parse_arguments(PARSE_ARGV 1
IC # prefix
"HAS_MANPAGE" # options
"" # one_value_keywords
"" # multi_value_keywords
)
set(target_name ${component})
install(TARGETS ${target_name}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT ${component}
)
if(INSTALL_MAN AND IC_HAS_MANPAGE)
install(FILES ${PROJECT_SOURCE_DIR}/doc/man/${target_name}.1
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
COMPONENT ${component}
)
endif()
endfunction()
2 changes: 1 addition & 1 deletion cmake/module/Maintenance.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ function(add_macos_deploy_target)

add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component GUI --prefix ${macos_app}/Contents/MacOS --strip
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component bitcoin-qt --prefix ${macos_app}/Contents/MacOS --strip
COMMAND ${CMAKE_COMMAND} -E rename ${macos_app}/Contents/MacOS/bin/$<TARGET_FILE_NAME:bitcoin-qt> ${macos_app}/Contents/MacOS/Bitcoin-Qt
COMMAND ${CMAKE_COMMAND} -E rm -rf ${macos_app}/Contents/MacOS/bin
VERBATIM
Expand Down
29 changes: 7 additions & 22 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.

include(GNUInstallDirs)
include(AddWindowsResources)

configure_file(${PROJECT_SOURCE_DIR}/cmake/bitcoin-build-config.h.in bitcoin-build-config.h USE_SOURCE_PERMISSIONS @ONLY)
Expand Down Expand Up @@ -170,8 +169,8 @@ target_link_libraries(bitcoin_common
$<$<PLATFORM_ID:Windows>:ws2_32>
)

include(InstallBinaryComponent)

set(installable_targets)
if(ENABLE_WALLET)
add_subdirectory(wallet)

Expand All @@ -189,7 +188,7 @@ if(ENABLE_WALLET)
bitcoin_util
Boost::headers
)
list(APPEND installable_targets bitcoin-wallet)
install_binary_component(bitcoin-wallet HAS_MANPAGE)
endif()
endif()

Expand Down Expand Up @@ -318,7 +317,7 @@ if(BUILD_DAEMON)
bitcoin_node
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
)
list(APPEND installable_targets bitcoind)
install_binary_component(bitcoind HAS_MANPAGE)
endif()
if(WITH_MULTIPROCESS AND BUILD_DAEMON)
add_executable(bitcoin-node
Expand All @@ -331,7 +330,7 @@ if(WITH_MULTIPROCESS AND BUILD_DAEMON)
bitcoin_ipc
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
)
list(APPEND installable_targets bitcoin-node)
install_binary_component(bitcoin-node)
endif()

if(WITH_MULTIPROCESS AND BUILD_TESTS)
Expand Down Expand Up @@ -374,7 +373,7 @@ if(BUILD_CLI)
libevent::core
libevent::extra
)
list(APPEND installable_targets bitcoin-cli)
install_binary_component(bitcoin-cli HAS_MANPAGE)
endif()


Expand All @@ -387,7 +386,7 @@ if(BUILD_TX)
bitcoin_util
univalue
)
list(APPEND installable_targets bitcoin-tx)
install_binary_component(bitcoin-tx HAS_MANPAGE)
endif()


Expand All @@ -399,7 +398,7 @@ if(BUILD_UTIL)
bitcoin_common
bitcoin_util
)
list(APPEND installable_targets bitcoin-util)
install_binary_component(bitcoin-util HAS_MANPAGE)
endif()


Expand Down Expand Up @@ -445,17 +444,3 @@ endif()
if(BUILD_FUZZ_BINARY)
add_subdirectory(test/fuzz)
endif()


install(TARGETS ${installable_targets}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
unset(installable_targets)

if(INSTALL_MAN)
# TODO: these stubs are no longer needed. man pages should be generated at install time.
install(DIRECTORY ../doc/man/
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
FILES_MATCHING PATTERN *.1
)
endif()
4 changes: 1 addition & 3 deletions src/bench/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,4 @@ add_test(NAME bench_sanity_check_high_priority
COMMAND bench_bitcoin -sanity-check -priority-level=high
)

install(TARGETS bench_bitcoin
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install_binary_component(bench_bitcoin)
13 changes: 7 additions & 6 deletions src/kernel/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.

include(GNUInstallDirs)

# TODO: libbitcoinkernel is a work in progress consensus engine
# library, as more and more modules are decoupled from the
# consensus engine, this list will shrink to only those
Expand Down Expand Up @@ -121,24 +123,23 @@ if(NOT BUILD_SHARED_LIBS)
set(all_kernel_static_link_libs "")
get_target_static_link_libs(bitcoinkernel all_kernel_static_link_libs)

install(TARGETS ${all_kernel_static_link_libs} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Kernel)
install(TARGETS ${all_kernel_static_link_libs} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT bitcoinkernel)
list(TRANSFORM all_kernel_static_link_libs PREPEND "-l")
# LIBS_PRIVATE is substituted in the pkg-config file.
list(JOIN all_kernel_static_link_libs " " LIBS_PRIVATE)
endif()

configure_file(${PROJECT_SOURCE_DIR}/libbitcoinkernel.pc.in ${PROJECT_BINARY_DIR}/libbitcoinkernel.pc @ONLY)
install(FILES ${PROJECT_BINARY_DIR}/libbitcoinkernel.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT Kernel)
install(FILES ${PROJECT_BINARY_DIR}/libbitcoinkernel.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT bitcoinkernel)

include(GNUInstallDirs)
install(TARGETS bitcoinkernel
RUNTIME
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT Kernel
COMPONENT bitcoinkernel
LIBRARY
DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT Kernel
COMPONENT bitcoinkernel
ARCHIVE
DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT Kernel
COMPONENT bitcoinkernel
)
9 changes: 2 additions & 7 deletions src/qt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ target_link_libraries(bitcoin-qt
)

import_plugins(bitcoin-qt)
set(installable_targets bitcoin-qt)
install_binary_component(bitcoin-qt HAS_MANPAGE)
if(WIN32)
set_target_properties(bitcoin-qt PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
Expand All @@ -253,17 +253,12 @@ if(WITH_MULTIPROCESS)
bitcoin_ipc
)
import_plugins(bitcoin-gui)
list(APPEND installable_targets bitcoin-gui)
install_binary_component(bitcoin-gui)
if(WIN32)
set_target_properties(bitcoin-gui PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
endif()

install(TARGETS ${installable_targets}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT GUI
)

if(BUILD_GUI_TESTS)
add_subdirectory(test)
endif()
Expand Down
4 changes: 1 addition & 3 deletions src/qt/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,4 @@ if(WIN32 AND VCPKG_TARGET_TRIPLET)
)
endif()

install(TARGETS test_bitcoin-qt
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install_binary_component(test_bitcoin-qt)
4 changes: 1 addition & 3 deletions src/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,4 @@ endfunction()

add_all_test_targets()

install(TARGETS test_bitcoin
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install_binary_component(test_bitcoin)
Loading