@@ -7,28 +7,18 @@ include(AddWindowsResources)
7
7
configure_file (${PROJECT_SOURCE_DIR} /cmake/bitcoin-build -config.h.in bitcoin-build -config.h USE_SOURCE_PERMISSIONS @ONLY)
8
8
include_directories (${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} )
9
9
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)
26
21
add_subdirectory (univalue)
27
- add_subdirectory (util)
28
- if (WITH_MULTIPROCESS)
29
- add_subdirectory (ipc)
30
- endif ()
31
-
32
22
#=============================
33
23
# secp256k1 subtree
34
24
#=============================
@@ -78,6 +68,38 @@ set_target_properties(secp256k1 PROPERTIES
78
68
)
79
69
set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
80
70
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
+
81
103
add_library (bitcoin_consensus STATIC EXCLUDE_FROM_ALL
82
104
arith_uint256.cpp
83
105
consensus/merkle.cpp
0 commit comments