@@ -78,46 +78,35 @@ check_cxx_source_compiles_with_flags("${ARM64_CRC_CXXFLAGS}" "
78
78
" HAVE_ARM64_CRC32C
79
79
)
80
80
81
- add_library (crc32c_common INTERFACE )
82
- target_compile_definitions (crc32c_common INTERFACE
81
+ add_library (crc32c STATIC EXCLUDE_FROM_ALL
82
+ ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c.cc
83
+ ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c_portable.cc
84
+ )
85
+ target_compile_definitions (crc32c PRIVATE
83
86
HAVE_BUILTIN_PREFETCH=$<BOOL:${HAVE_BUILTIN_PREFETCH}>
84
87
HAVE_MM_PREFETCH=$<BOOL:${HAVE_MM_PREFETCH}>
85
88
HAVE_STRONG_GETAUXVAL=$<BOOL:${HAVE_STRONG_GETAUXVAL}>
86
89
BYTE_ORDER_BIG_ENDIAN=$<STREQUAL:${CMAKE_CXX_BYTE_ORDER},BIG_ENDIAN>
87
90
HAVE_SSE42=$<BOOL:${HAVE_SSE42}>
88
91
HAVE_ARM64_CRC32C=$<BOOL:${HAVE_ARM64_CRC32C}>
89
92
)
90
- target_link_libraries (crc32c_common INTERFACE
91
- core_interface
92
- )
93
-
94
- add_library (crc32c STATIC EXCLUDE_FROM_ALL
95
- ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c.cc
96
- ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c_portable.cc
97
- )
98
93
target_include_directories (crc32c
99
94
PUBLIC
100
95
$< BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /src/crc32c/include>
101
96
)
102
- target_link_libraries (crc32c PRIVATE crc32c_common )
97
+ target_link_libraries (crc32c PRIVATE core_interface )
103
98
set_target_properties (crc32c PROPERTIES EXPORT_COMPILE_COMMANDS OFF )
104
99
105
100
if (HAVE_SSE42 )
106
- add_library (crc32c_sse42 STATIC EXCLUDE_FROM_ALL
107
- ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c_sse42.cc
108
- )
109
- target_compile_options (crc32c_sse42 PRIVATE ${SSE42_CXXFLAGS} )
110
- target_link_libraries (crc32c_sse42 PRIVATE crc32c_common )
111
- set_target_properties (crc32c_sse42 PROPERTIES EXPORT_COMPILE_COMMANDS OFF )
112
- target_link_libraries (crc32c PRIVATE crc32c_sse42 )
101
+ set (_crc32_src ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c_sse42.cc )
102
+ target_sources (crc32c PRIVATE ${_crc32_src} )
103
+ set_property (SOURCE ${_crc32_src} PROPERTY COMPILE_OPTIONS ${SSE42_CXXFLAGS} )
113
104
endif ()
114
105
115
106
if (HAVE_ARM64_CRC32C )
116
- add_library (crc32c_arm64 STATIC EXCLUDE_FROM_ALL
117
- ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c_arm64.cc
118
- )
119
- target_compile_options (crc32c_arm64 PRIVATE ${ARM64_CRC_CXXFLAGS} )
120
- target_link_libraries (crc32c_arm64 PRIVATE crc32c_common )
121
- set_target_properties (crc32c_arm64 PROPERTIES EXPORT_COMPILE_COMMANDS OFF )
122
- target_link_libraries (crc32c PRIVATE crc32c_arm64 )
107
+ set (_crc32_src ${PROJECT_SOURCE_DIR} /src/crc32c/src/crc32c_arm64.cc )
108
+ target_sources (crc32c PRIVATE ${_crc32_src} )
109
+ set_property (SOURCE ${_crc32_src} PROPERTY COMPILE_OPTIONS ${ARM64_CRC_CXXFLAGS} )
123
110
endif ()
111
+
112
+ unset (_crc32_src )
0 commit comments