Skip to content

Commit 0bb8a01

Browse files
committed
Merge bitcoin/bitcoin#31880: cmake: Add optional sources to minisketch library directly
9919e92 cmake: Add optional sources to `minisketch` library directly (Hennadii Stepanov) Pull request description: This PR is a continuation of bitcoin/bitcoin#31268 and applies similar changes to the `minisketch` library, which addresses [this comment](bitcoin/bitcoin#30911 (comment)). Additionally, a [workaround](https://github.com/bitcoin/bitcoin/blob/db36a92c02b83f2e6477a5a55fc061319f7cc6a3/cmake/minisketch.cmake#L77-L78) for a CMake bug has been removed. ACKs for top commit: theuni: utACK 9919e92 Tree-SHA512: e41618ad6420d3e81960a4691d28b6c143c335e10edcae207cfc1e7743cf85aeab46ae495a5434469f45518db65cd8c18dc4d7815993e6d35aaf2abdcdb43f6b
2 parents 3bb679e + 9919e92 commit 0bb8a01

File tree

1 file changed

+22
-30
lines changed

1 file changed

+22
-30
lines changed

cmake/minisketch.cmake

+22-30
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ check_cxx_source_compiles_with_flags("
2828
)
2929

3030
add_library(minisketch_common INTERFACE)
31-
target_compile_definitions(minisketch_common INTERFACE
32-
DISABLE_DEFAULT_FIELDS
33-
ENABLE_FIELD_32
34-
)
3531
if(MSVC)
3632
target_compile_options(minisketch_common INTERFACE
3733
/wd4060
@@ -42,29 +38,6 @@ if(MSVC)
4238
)
4339
endif()
4440

45-
if(HAVE_CLMUL)
46-
add_library(minisketch_clmul OBJECT EXCLUDE_FROM_ALL
47-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_1byte.cpp
48-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_2bytes.cpp
49-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_3bytes.cpp
50-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_4bytes.cpp
51-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_5bytes.cpp
52-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_6bytes.cpp
53-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_7bytes.cpp
54-
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_8bytes.cpp
55-
)
56-
target_compile_definitions(minisketch_clmul PUBLIC HAVE_CLMUL)
57-
target_compile_options(minisketch_clmul PRIVATE ${CLMUL_CXXFLAGS})
58-
target_link_libraries(minisketch_clmul
59-
PRIVATE
60-
core_interface
61-
minisketch_common
62-
)
63-
set_target_properties(minisketch_clmul PROPERTIES
64-
EXPORT_COMPILE_COMMANDS OFF
65-
)
66-
endif()
67-
6841
add_library(minisketch STATIC EXCLUDE_FROM_ALL
6942
${PROJECT_SOURCE_DIR}/src/minisketch/src/minisketch.cpp
7043
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_1byte.cpp
@@ -77,8 +50,11 @@ add_library(minisketch STATIC EXCLUDE_FROM_ALL
7750
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_8bytes.cpp
7851
)
7952

80-
# Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/24058
81-
set_target_properties(minisketch PROPERTIES OPTIMIZE_DEPENDENCIES OFF)
53+
target_compile_definitions(minisketch
54+
PRIVATE
55+
DISABLE_DEFAULT_FIELDS
56+
ENABLE_FIELD_32
57+
)
8258

8359
target_include_directories(minisketch
8460
PUBLIC
@@ -89,9 +65,25 @@ target_link_libraries(minisketch
8965
PRIVATE
9066
core_interface
9167
minisketch_common
92-
$<TARGET_NAME_IF_EXISTS:minisketch_clmul>
9368
)
9469

9570
set_target_properties(minisketch PROPERTIES
9671
EXPORT_COMPILE_COMMANDS OFF
9772
)
73+
74+
if(HAVE_CLMUL)
75+
set(_minisketch_clmul_src
76+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_1byte.cpp
77+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_2bytes.cpp
78+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_3bytes.cpp
79+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_4bytes.cpp
80+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_5bytes.cpp
81+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_6bytes.cpp
82+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_7bytes.cpp
83+
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_8bytes.cpp
84+
)
85+
target_sources(minisketch PRIVATE ${_minisketch_clmul_src})
86+
set_property(SOURCE ${_minisketch_clmul_src} PROPERTY COMPILE_OPTIONS ${CLMUL_CXXFLAGS})
87+
target_compile_definitions(minisketch PRIVATE HAVE_CLMUL)
88+
unset(_minisketch_clmul_src)
89+
endif()

0 commit comments

Comments
 (0)