mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
cmake: Add optional sources to minisketch
library directly
This change eliminates the questionable use of an `OBJECT` library and removes the corresponding workaround for a CMake bug.
This commit is contained in:
parent
28dec6c5f8
commit
9919e92022
1 changed files with 22 additions and 30 deletions
|
@ -25,10 +25,6 @@ check_cxx_source_compiles_with_flags("${CLMUL_CXXFLAGS}" "
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(minisketch_common INTERFACE)
|
add_library(minisketch_common INTERFACE)
|
||||||
target_compile_definitions(minisketch_common INTERFACE
|
|
||||||
DISABLE_DEFAULT_FIELDS
|
|
||||||
ENABLE_FIELD_32
|
|
||||||
)
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
target_compile_options(minisketch_common INTERFACE
|
target_compile_options(minisketch_common INTERFACE
|
||||||
/wd4060
|
/wd4060
|
||||||
|
@ -39,29 +35,6 @@ if(MSVC)
|
||||||
)
|
)
|
||||||
endif()
|
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
|
add_library(minisketch STATIC EXCLUDE_FROM_ALL
|
||||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/minisketch.cpp
|
${PROJECT_SOURCE_DIR}/src/minisketch/src/minisketch.cpp
|
||||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_1byte.cpp
|
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_1byte.cpp
|
||||||
|
@ -74,8 +47,11 @@ add_library(minisketch STATIC EXCLUDE_FROM_ALL
|
||||||
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_8bytes.cpp
|
${PROJECT_SOURCE_DIR}/src/minisketch/src/fields/generic_8bytes.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/24058
|
target_compile_definitions(minisketch
|
||||||
set_target_properties(minisketch PROPERTIES OPTIMIZE_DEPENDENCIES OFF)
|
PRIVATE
|
||||||
|
DISABLE_DEFAULT_FIELDS
|
||||||
|
ENABLE_FIELD_32
|
||||||
|
)
|
||||||
|
|
||||||
target_include_directories(minisketch
|
target_include_directories(minisketch
|
||||||
PUBLIC
|
PUBLIC
|
||||||
|
@ -86,9 +62,25 @@ target_link_libraries(minisketch
|
||||||
PRIVATE
|
PRIVATE
|
||||||
core_interface
|
core_interface
|
||||||
minisketch_common
|
minisketch_common
|
||||||
$<TARGET_NAME_IF_EXISTS:minisketch_clmul>
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(minisketch PROPERTIES
|
set_target_properties(minisketch PROPERTIES
|
||||||
EXPORT_COMPILE_COMMANDS OFF
|
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…
Add table
Reference in a new issue