@@ -7,28 +7,18 @@ include(AddWindowsResources)
77configure_file (${PROJECT_SOURCE_DIR} /cmake/bitcoin-build -config.h.in bitcoin-build -config.h USE_SOURCE_PERMISSIONS @ONLY)
88include_directories (${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} )
99
10- add_custom_target (generate_build_info
11- BYPRODUCTS ${PROJECT_BINARY_DIR} /src/bitcoin-build -info.h
12- COMMAND ${CMAKE_COMMAND} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR} /src/bitcoin-build -info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR} /cmake/script/GenerateBuildInfo.cmake
13- COMMENT "Generating bitcoin-build-info.h"
14- VERBATIM
15- )
16- add_library (bitcoin_clientversion STATIC EXCLUDE_FROM_ALL
17- clientversion.cpp
18- )
19- target_link_libraries (bitcoin_clientversion
20- PRIVATE
21- core_interface
22- )
23- add_dependencies (bitcoin_clientversion generate_build_info)
24-
25- add_subdirectory (crypto)
10+ #=============================
11+ # Subprojects
12+ #=============================
13+ # Subprojects include subdirectories that do or could have tests
14+ # and/or benchmark binaries, such as all subtrees and univalue.
15+ # These need to be included before CMAKE_*_OUTPUT_DIRECTORY variables
16+ # are set, so output locations of subproject tests and libraries are
17+ # not overridden.
18+ include (../cmake/crc32c.cmake)
19+ include (../cmake/leveldb.cmake)
20+ include (../cmake/minisketch.cmake)
2621add_subdirectory (univalue)
27- add_subdirectory (util)
28- if (WITH_MULTIPROCESS)
29- add_subdirectory (ipc)
30- endif ()
31-
3222#=============================
3323# secp256k1 subtree
3424#=============================
@@ -78,6 +68,38 @@ set_target_properties(secp256k1 PROPERTIES
7868)
7969set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
8070
71+ # Set top-level target output locations.
72+ if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY )
73+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /bin)
74+ endif ()
75+ if (NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY )
76+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
77+ endif ()
78+ if (NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY )
79+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} /lib)
80+ endif ()
81+
82+ add_custom_target (generate_build_info
83+ BYPRODUCTS ${PROJECT_BINARY_DIR} /src/bitcoin-build -info.h
84+ COMMAND ${CMAKE_COMMAND} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR} /src/bitcoin-build -info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR} /cmake/script/GenerateBuildInfo.cmake
85+ COMMENT "Generating bitcoin-build-info.h"
86+ VERBATIM
87+ )
88+ add_library (bitcoin_clientversion STATIC EXCLUDE_FROM_ALL
89+ clientversion.cpp
90+ )
91+ target_link_libraries (bitcoin_clientversion
92+ PRIVATE
93+ core_interface
94+ )
95+ add_dependencies (bitcoin_clientversion generate_build_info)
96+
97+ add_subdirectory (crypto)
98+ add_subdirectory (util)
99+ if (WITH_MULTIPROCESS)
100+ add_subdirectory (ipc)
101+ endif ()
102+
81103add_library (bitcoin_consensus STATIC EXCLUDE_FROM_ALL
82104 arith_uint256.cpp
83105 consensus/merkle.cpp
0 commit comments