Skip to content

Commit 7add3ea

Browse files
committed
cmake: Add subtree_add_library function
1 parent 28fa50e commit 7add3ea

File tree

5 files changed

+17
-12
lines changed

5 files changed

+17
-12
lines changed

cmake/crc32c.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ check_cxx_source_compiles_with_flags("${ARM_CRC_CXXFLAGS}" "
7878
" HAVE_ARM64_CRC32C
7979
)
8080

81-
add_library(crc32c STATIC EXCLUDE_FROM_ALL
81+
subtree_add_library(crc32c STATIC EXCLUDE_FROM_ALL
8282
${PROJECT_SOURCE_DIR}/src/crc32c/src/crc32c.cc
8383
${PROJECT_SOURCE_DIR}/src/crc32c/src/crc32c_portable.cc
8484
)
@@ -111,5 +111,3 @@ if(HAVE_ARM64_CRC32C)
111111
APPEND PROPERTY COMPILE_OPTIONS ${ARM_CRC_CXXFLAGS}
112112
)
113113
endif()
114-
115-
target_link_libraries(crc32c PRIVATE core_base_interface)

cmake/leveldb.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
include(CheckCXXSymbolExists)
1010
check_cxx_symbol_exists(F_FULLFSYNC "fcntl.h" HAVE_FULLFSYNC)
1111

12-
add_library(leveldb STATIC EXCLUDE_FROM_ALL
12+
subtree_add_library(leveldb STATIC EXCLUDE_FROM_ALL
1313
${PROJECT_SOURCE_DIR}/src/leveldb/db/builder.cc
1414
${PROJECT_SOURCE_DIR}/src/leveldb/db/c.cc
1515
${PROJECT_SOURCE_DIR}/src/leveldb/db/db_impl.cc
@@ -95,7 +95,6 @@ else()
9595
endif()
9696

9797
target_link_libraries(leveldb PRIVATE
98-
core_base_interface
9998
nowarn_leveldb_interface
10099
crc32c
101100
)

cmake/minisketch.cmake

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ if(MSVC)
4040
endif()
4141

4242
if(HAVE_CLMUL)
43-
add_library(minisketch_clmul OBJECT EXCLUDE_FROM_ALL
43+
subtree_add_library(minisketch_clmul OBJECT EXCLUDE_FROM_ALL
4444
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_1byte.cpp
4545
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_2bytes.cpp
4646
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_3bytes.cpp
@@ -54,12 +54,11 @@ if(HAVE_CLMUL)
5454
target_compile_options(minisketch_clmul PRIVATE ${CLMUL_CXXFLAGS})
5555
target_link_libraries(minisketch_clmul
5656
PRIVATE
57-
core_base_interface
5857
minisketch_common
5958
)
6059
endif()
6160

62-
add_library(minisketch STATIC EXCLUDE_FROM_ALL
61+
subtree_add_library(minisketch STATIC EXCLUDE_FROM_ALL
6362
${PROJECT_SOURCE_DIR}/src/minisketch/src/minisketch.cpp
6463
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_1byte.cpp
6564
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_2bytes.cpp
@@ -78,7 +77,6 @@ target_include_directories(minisketch
7877

7978
target_link_libraries(minisketch
8079
PRIVATE
81-
core_base_interface
8280
minisketch_common
8381
$<TARGET_NAME_IF_EXISTS:minisketch_clmul>
8482
)

cmake/module/AddTargetMacros.cmake

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@
44

55
include_guard(GLOBAL)
66

7+
function(subtree_add_library name)
8+
cmake_parse_arguments(PARSE_ARGV 1 FWD "" "" "")
9+
add_library("${name}" ${FWD_UNPARSED_ARGUMENTS})
10+
target_link_libraries("${name}" PRIVATE core_base_interface)
11+
cmake_language(EVAL CODE "
12+
cmake_language(DEFER
13+
DIRECTORY ${PROJECT_SOURCE_DIR}
14+
CALL target_link_libraries ${name} PRIVATE extra_flags_interface
15+
)
16+
")
17+
endfunction()
18+
719
function(bitcoincore_add_library name)
820
cmake_parse_arguments(PARSE_ARGV 1 FWD "" "" "")
921
add_library("${name}" ${FWD_UNPARSED_ARGUMENTS})

cmake/secp256k1.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ check_c_source_compiles("
2222
" HAVE_64BIT_ASM
2323
)
2424

25-
add_library(secp256k1 STATIC EXCLUDE_FROM_ALL
25+
subtree_add_library(secp256k1 STATIC EXCLUDE_FROM_ALL
2626
${PROJECT_SOURCE_DIR}/src/secp256k1/src/secp256k1.c
2727
${PROJECT_SOURCE_DIR}/src/secp256k1/src/precomputed_ecmult.c
2828
${PROJECT_SOURCE_DIR}/src/secp256k1/src/precomputed_ecmult_gen.c
@@ -54,5 +54,3 @@ if(MSVC)
5454
/wd4267
5555
)
5656
endif()
57-
58-
target_link_libraries(secp256k1 PRIVATE core_base_interface)

0 commit comments

Comments
 (0)