mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
cmake: Move internal binaries from bin/ to libexec/
Currently when "make install" or "cmake --install" are run, various internal binaries that are confusing and not typically useful and installed to `${CMAKE_INSTALL_PREFIX}/bin` and can wind up on the system PATH. This PR moves internal binaries out of bin/ into libexec/ where they will still be accessible but will not be automatically placed on the PATH or be confused with more useful binaries. The PR also adds an install rule for the bitcoin-chainstate binary. After this PR binaries installed to bin/ are: - bitcoin-cli - bitcoind - bitcoin-qt - bitcoin-tx - bitcoin-util - bitcoin-wallet And binaries installed to libexec/ are: - bench_bitcoin - bitcoin-gui - bitcoin-node - test_bitcoin - test_bitcoin-qt In the future if #31375 gets merged, there will be a new `bitcoin` wrapper executable in bin/ that can be used to call other binaries, and with that present, we could consider moving other binaries from bin/ to libexec/ and recommending that most users should use the wrapper instead of calling the different utilities directly. But this PR should make sense with or without #31375.
This commit is contained in:
parent
73e2ec1373
commit
45bfd97ec7
7 changed files with 14 additions and 8 deletions
|
@ -149,7 +149,7 @@ if [ "$RUN_UNIT_TESTS" = "true" ]; then
|
|||
fi
|
||||
|
||||
if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then
|
||||
DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" "${BASE_OUTDIR}"/bin/test_bitcoin --catch_system_errors=no -l test_suite
|
||||
DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" "${BASE_OUTDIR}"/libexec/test_bitcoin --catch_system_errors=no -l test_suite
|
||||
fi
|
||||
|
||||
if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then
|
||||
|
|
|
@ -8,13 +8,18 @@ include(GNUInstallDirs)
|
|||
function(install_binary_component component)
|
||||
cmake_parse_arguments(PARSE_ARGV 1
|
||||
IC # prefix
|
||||
"HAS_MANPAGE" # options
|
||||
"HAS_MANPAGE;INTERNAL" # options
|
||||
"" # one_value_keywords
|
||||
"" # multi_value_keywords
|
||||
)
|
||||
set(target_name ${component})
|
||||
if(IC_INTERNAL)
|
||||
set(runtime_dest ${CMAKE_INSTALL_LIBEXECDIR})
|
||||
else()
|
||||
set(runtime_dest ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
install(TARGETS ${target_name}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
RUNTIME DESTINATION ${runtime_dest}
|
||||
COMPONENT ${component}
|
||||
)
|
||||
if(INSTALL_MAN AND IC_HAS_MANPAGE)
|
||||
|
|
|
@ -330,7 +330,7 @@ if(WITH_MULTIPROCESS AND BUILD_DAEMON)
|
|||
bitcoin_ipc
|
||||
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
|
||||
)
|
||||
install_binary_component(bitcoin-node)
|
||||
install_binary_component(bitcoin-node INTERNAL)
|
||||
endif()
|
||||
|
||||
if(WITH_MULTIPROCESS AND BUILD_TESTS)
|
||||
|
@ -429,6 +429,7 @@ if(BUILD_UTIL_CHAINSTATE)
|
|||
core_interface
|
||||
bitcoinkernel
|
||||
)
|
||||
install_binary_component(bitcoin-chainstate INTERNAL)
|
||||
endif()
|
||||
|
||||
|
||||
|
|
|
@ -81,4 +81,4 @@ add_test(NAME bench_sanity_check_high_priority
|
|||
COMMAND bench_bitcoin -sanity-check -priority-level=high
|
||||
)
|
||||
|
||||
install_binary_component(bench_bitcoin)
|
||||
install_binary_component(bench_bitcoin INTERNAL)
|
||||
|
|
|
@ -253,7 +253,7 @@ if(WITH_MULTIPROCESS)
|
|||
bitcoin_ipc
|
||||
)
|
||||
import_plugins(bitcoin-gui)
|
||||
install_binary_component(bitcoin-gui)
|
||||
install_binary_component(bitcoin-gui INTERNAL)
|
||||
if(WIN32)
|
||||
set_target_properties(bitcoin-gui PROPERTIES WIN32_EXECUTABLE TRUE)
|
||||
endif()
|
||||
|
|
|
@ -45,4 +45,4 @@ if(WIN32 AND VCPKG_TARGET_TRIPLET)
|
|||
)
|
||||
endif()
|
||||
|
||||
install_binary_component(test_bitcoin-qt)
|
||||
install_binary_component(test_bitcoin-qt INTERNAL)
|
||||
|
|
|
@ -214,4 +214,4 @@ endfunction()
|
|||
|
||||
add_all_test_targets()
|
||||
|
||||
install_binary_component(test_bitcoin)
|
||||
install_binary_component(test_bitcoin INTERNAL)
|
||||
|
|
Loading…
Add table
Reference in a new issue