@@ -28,10 +28,6 @@ check_cxx_source_compiles_with_flags("
2828)
2929
3030add_library (minisketch_common INTERFACE )
31- target_compile_definitions (minisketch_common INTERFACE
32- DISABLE_DEFAULT_FIELDS
33- ENABLE_FIELD_32
34- )
3531if (MSVC )
3632 target_compile_options (minisketch_common INTERFACE
3733 /wd4060
@@ -42,29 +38,6 @@ if(MSVC)
4238 )
4339endif ()
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-
6841add_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
8359target_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
9570set_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