@@ -78,46 +78,35 @@ check_cxx_source_compiles_with_flags("${ARM64_CRC_CXXFLAGS}" "
7878 " HAVE_ARM64_CRC32C
7979)
8080
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
8386 HAVE_BUILTIN_PREFETCH=$<BOOL :${HAVE_BUILTIN_PREFETCH} >
8487 HAVE_MM_PREFETCH=$<BOOL :${HAVE_MM_PREFETCH} >
8588 HAVE_STRONG_GETAUXVAL=$<BOOL :${HAVE_STRONG_GETAUXVAL} >
8689 BYTE_ORDER_BIG_ENDIAN=$<STREQUAL :${CMAKE_CXX_BYTE_ORDER} ,BIG_ENDIAN>
8790 HAVE_SSE42=$<BOOL :${HAVE_SSE42} >
8891 HAVE_ARM64_CRC32C=$<BOOL :${HAVE_ARM64_CRC32C} >
8992)
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- )
9893target_include_directories (crc32c
9994 PUBLIC
10095 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /src/crc32c/include >
10196)
102- target_link_libraries (crc32c PRIVATE crc32c_common )
97+ target_link_libraries (crc32c PRIVATE core_interface )
10398set_target_properties (crc32c PROPERTIES EXPORT_COMPILE_COMMANDS OFF )
10499
105100if (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} )
113104endif ()
114105
115106if (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} )
123110endif ()
111+
112+ unset (_crc32_src)
0 commit comments