Skip to content

Commit

Permalink
cmake: Implement make install
Browse files Browse the repository at this point in the history
  • Loading branch information
hebasto committed Nov 7, 2023
1 parent 60f0046 commit 7dc3874
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ tristate_option(WITH_USDT

option(BUILD_TESTS "Build test_bitcoin executable." ON)
option(BUILD_BENCH "Build bench_bitcoin executable." ON)
option(INSTALL_MAN "Install man pages." ON)

if(CXX20)
set(CMAKE_CXX_STANDARD 20)
Expand Down
22 changes: 22 additions & 0 deletions src/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 http://www.opensource.org/licenses/mit-license.php.

include(GNUInstallDirs)

configure_file(${CMAKE_SOURCE_DIR}/cmake/bitcoin-config.h.in config/bitcoin-config.h @ONLY)
add_compile_definitions(HAVE_CONFIG_H)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
Expand Down Expand Up @@ -101,6 +103,7 @@ target_link_libraries(bitcoin_common
)


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

Expand All @@ -117,6 +120,7 @@ if(ENABLE_WALLET)
bitcoin_util
Boost::headers
)
list(APPEND installable_targets bitcoin-wallet)
endif()
endif()

Expand Down Expand Up @@ -247,6 +251,7 @@ if(BUILD_DAEMON)
core
bitcoin_node
)
list(APPEND installable_targets bitcoind)
endif()


Expand All @@ -271,6 +276,7 @@ if(BUILD_CLI)
bitcoin_util
libevent::libevent
)
list(APPEND installable_targets bitcoin-cli)
endif()


Expand All @@ -282,6 +288,7 @@ if(BUILD_TX)
bitcoin_util
univalue
)
list(APPEND installable_targets bitcoin-tx)
endif()


Expand All @@ -292,6 +299,7 @@ if(BUILD_UTIL)
bitcoin_common
bitcoin_util
)
list(APPEND installable_targets bitcoin-util)
endif()


Expand All @@ -303,3 +311,17 @@ endif()
if(BUILD_TESTS)
add_subdirectory(test)
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: 4 additions & 0 deletions src/bench/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,7 @@ if(ENABLE_WALLET)
)
target_link_libraries(bench_bitcoin bitcoin_wallet)
endif()

install(TARGETS bench_bitcoin
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
4 changes: 4 additions & 0 deletions src/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -175,3 +175,7 @@ if(ENABLE_WALLET)
target_sources(test_bitcoin PRIVATE ../wallet/test/db_tests.cpp)
endif()
endif()

install(TARGETS test_bitcoin
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

0 comments on commit 7dc3874

Please sign in to comment.