mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-09 04:39:08 +02:00
Merge bitcoin/bitcoin#31880: cmake: Add optional sources to minisketch
library directly
9919e92022ba61d2dc1b13b1116b56035be459a6 cmake: Add optional sources to `minisketch` library directly (Hennadii Stepanov)
Pull request description:
This PR is a continuation of https://github.com/bitcoin/bitcoin/pull/31268 and applies similar changes to the `minisketch` library, which addresses [this comment](https://github.com/bitcoin/bitcoin/pull/30911#discussion_r1953081930).
Additionally, a [workaround](db36a92c02/cmake/minisketch.cmake (L77-L78)
) for a CMake bug has been removed.
ACKs for top commit:
theuni:
utACK 9919e92022ba61d2dc1b13b1116b56035be459a6
Tree-SHA512: e41618ad6420d3e81960a4691d28b6c143c335e10edcae207cfc1e7743cf85aeab46ae495a5434469f45518db65cd8c18dc4d7815993e6d35aaf2abdcdb43f6b
This commit is contained in:
commit
0bb8a01810
@ -28,10 +28,6 @@ check_cxx_source_compiles_with_flags("
|
||||
)
|
||||
|
||||
add_library(minisketch_common INTERFACE)
|
||||
target_compile_definitions(minisketch_common INTERFACE
|
||||
DISABLE_DEFAULT_FIELDS
|
||||
ENABLE_FIELD_32
|
||||
)
|
||||
if(MSVC)
|
||||
target_compile_options(minisketch_common INTERFACE
|
||||
/wd4060
|
||||
@ -42,29 +38,6 @@ if(MSVC)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(HAVE_CLMUL)
|
||||
add_library(minisketch_clmul OBJECT EXCLUDE_FROM_ALL
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_1byte.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_2bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_3bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_4bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_5bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_6bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_7bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_8bytes.cpp
|
||||
)
|
||||
target_compile_definitions(minisketch_clmul PUBLIC HAVE_CLMUL)
|
||||
target_compile_options(minisketch_clmul PRIVATE ${CLMUL_CXXFLAGS})
|
||||
target_link_libraries(minisketch_clmul
|
||||
PRIVATE
|
||||
core_interface
|
||||
minisketch_common
|
||||
)
|
||||
set_target_properties(minisketch_clmul PROPERTIES
|
||||
EXPORT_COMPILE_COMMANDS OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(minisketch STATIC EXCLUDE_FROM_ALL
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/minisketch.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_1byte.cpp
|
||||
@ -77,8 +50,11 @@ add_library(minisketch STATIC EXCLUDE_FROM_ALL
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_8bytes.cpp
|
||||
)
|
||||
|
||||
# Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/24058
|
||||
set_target_properties(minisketch PROPERTIES OPTIMIZE_DEPENDENCIES OFF)
|
||||
target_compile_definitions(minisketch
|
||||
PRIVATE
|
||||
DISABLE_DEFAULT_FIELDS
|
||||
ENABLE_FIELD_32
|
||||
)
|
||||
|
||||
target_include_directories(minisketch
|
||||
PUBLIC
|
||||
@ -89,9 +65,25 @@ target_link_libraries(minisketch
|
||||
PRIVATE
|
||||
core_interface
|
||||
minisketch_common
|
||||
$<TARGET_NAME_IF_EXISTS:minisketch_clmul>
|
||||
)
|
||||
|
||||
set_target_properties(minisketch PROPERTIES
|
||||
EXPORT_COMPILE_COMMANDS OFF
|
||||
)
|
||||
|
||||
if(HAVE_CLMUL)
|
||||
set(_minisketch_clmul_src
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_1byte.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_2bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_3bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_4bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_5bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_6bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_7bytes.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/clmul_8bytes.cpp
|
||||
)
|
||||
target_sources(minisketch PRIVATE ${_minisketch_clmul_src})
|
||||
set_property(SOURCE ${_minisketch_clmul_src} PROPERTY COMPILE_OPTIONS ${CLMUL_CXXFLAGS})
|
||||
target_compile_definitions(minisketch PRIVATE HAVE_CLMUL)
|
||||
unset(_minisketch_clmul_src)
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user