mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
Fix cmake error on ICX under release mode.
This commit is contained in:
parent
a388a0f193
commit
83d03e97c5
@ -133,6 +133,13 @@ CMAKE_DEPENDENT_OPTION(DISABLE_ASSERTS "Disable assert(); Asserts are enabled in
|
|||||||
option(BUILD_AVX512 "Experimental: support avx512 in the fat runtime"
|
option(BUILD_AVX512 "Experimental: support avx512 in the fat runtime"
|
||||||
OFF)
|
OFF)
|
||||||
|
|
||||||
|
option(BUILD_AVX512VBMI "Experimental: support avx512vbmi in the fat runtime"
|
||||||
|
OFF)
|
||||||
|
|
||||||
|
if (BUILD_AVX512VBMI)
|
||||||
|
set(BUILD_AVX512 ON)
|
||||||
|
endif ()
|
||||||
|
|
||||||
option(WINDOWS_ICC "Use Intel C++ Compiler on Windows, default off, requires ICC to be set in project" OFF)
|
option(WINDOWS_ICC "Use Intel C++ Compiler on Windows, default off, requires ICC to be set in project" OFF)
|
||||||
|
|
||||||
# TODO: per platform config files?
|
# TODO: per platform config files?
|
||||||
@ -277,6 +284,7 @@ else()
|
|||||||
set(SKYLAKE_FLAG "-xCORE-AVX512")
|
set(SKYLAKE_FLAG "-xCORE-AVX512")
|
||||||
else ()
|
else ()
|
||||||
set(SKYLAKE_FLAG "-march=skylake-avx512")
|
set(SKYLAKE_FLAG "-march=skylake-avx512")
|
||||||
|
set(ICELAKE_FLAG "-march=icelake-server")
|
||||||
endif ()
|
endif ()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -1244,10 +1252,17 @@ else (FAT_RUNTIME)
|
|||||||
if (BUILD_AVX512)
|
if (BUILD_AVX512)
|
||||||
add_library(hs_exec_avx512 OBJECT ${hs_exec_SRCS} ${hs_exec_avx2_SRCS})
|
add_library(hs_exec_avx512 OBJECT ${hs_exec_SRCS} ${hs_exec_avx2_SRCS})
|
||||||
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_avx512>)
|
list(APPEND RUNTIME_LIBS $<TARGET_OBJECTS:hs_exec_avx512>)
|
||||||
|
if (BUILD_AVX512VBMI)
|
||||||
|
set_target_properties(hs_exec_avx512 PROPERTIES
|
||||||
|
COMPILE_FLAGS "${ICELAKE_FLAG}"
|
||||||
|
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} avx512 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||||
|
)
|
||||||
|
else ()
|
||||||
set_target_properties(hs_exec_avx512 PROPERTIES
|
set_target_properties(hs_exec_avx512 PROPERTIES
|
||||||
COMPILE_FLAGS "${SKYLAKE_FLAG}"
|
COMPILE_FLAGS "${SKYLAKE_FLAG}"
|
||||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} avx512 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} avx512 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||||
)
|
)
|
||||||
|
endif (BUILD_AVX512VBMI)
|
||||||
endif (BUILD_AVX512)
|
endif (BUILD_AVX512)
|
||||||
|
|
||||||
add_library(hs_exec_common OBJECT
|
add_library(hs_exec_common OBJECT
|
||||||
@ -1305,11 +1320,19 @@ else (FAT_RUNTIME)
|
|||||||
if (BUILD_AVX512)
|
if (BUILD_AVX512)
|
||||||
add_library(hs_exec_shared_avx512 OBJECT ${hs_exec_SRCS} ${hs_exec_avx2_SRCS})
|
add_library(hs_exec_shared_avx512 OBJECT ${hs_exec_SRCS} ${hs_exec_avx2_SRCS})
|
||||||
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_avx512>)
|
list(APPEND RUNTIME_SHLIBS $<TARGET_OBJECTS:hs_exec_shared_avx512>)
|
||||||
|
if (BUILD_AVX512VBMI)
|
||||||
|
set_target_properties(hs_exec_shared_avx512 PROPERTIES
|
||||||
|
COMPILE_FLAGS "${ICELAKE_FLAG}"
|
||||||
|
POSITION_INDEPENDENT_CODE TRUE
|
||||||
|
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} avx512 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||||
|
)
|
||||||
|
else ()
|
||||||
set_target_properties(hs_exec_shared_avx512 PROPERTIES
|
set_target_properties(hs_exec_shared_avx512 PROPERTIES
|
||||||
COMPILE_FLAGS "${SKYLAKE_FLAG}"
|
COMPILE_FLAGS "${SKYLAKE_FLAG}"
|
||||||
POSITION_INDEPENDENT_CODE TRUE
|
POSITION_INDEPENDENT_CODE TRUE
|
||||||
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} avx512 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
RULE_LAUNCH_COMPILE "${BUILD_WRAPPER} avx512 ${CMAKE_MODULE_PATH}/keep.syms.in"
|
||||||
)
|
)
|
||||||
|
endif (BUILD_AVX512VBMI)
|
||||||
endif (BUILD_AVX512)
|
endif (BUILD_AVX512)
|
||||||
add_library(hs_exec_common_shared OBJECT
|
add_library(hs_exec_common_shared OBJECT
|
||||||
${hs_exec_common_SRCS}
|
${hs_exec_common_SRCS}
|
||||||
|
@ -23,7 +23,11 @@ endif ()
|
|||||||
if (FAT_RUNTIME)
|
if (FAT_RUNTIME)
|
||||||
# test the highest level microarch to make sure everything works
|
# test the highest level microarch to make sure everything works
|
||||||
if (BUILD_AVX512)
|
if (BUILD_AVX512)
|
||||||
|
if (BUILD_AVX512VBMI)
|
||||||
|
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${ICELAKE_FLAG}")
|
||||||
|
else ()
|
||||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${SKYLAKE_FLAG}")
|
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${SKYLAKE_FLAG}")
|
||||||
|
endif (BUILD_AVX512VBMI)
|
||||||
else ()
|
else ()
|
||||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} -march=core-avx2")
|
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} -march=core-avx2")
|
||||||
endif ()
|
endif ()
|
||||||
@ -94,6 +98,9 @@ if (FAT_RUNTIME)
|
|||||||
if ((ARCH_IA32 OR ARCH_X86_64) AND BUILD_AVX512 AND NOT HAVE_AVX512)
|
if ((ARCH_IA32 OR ARCH_X86_64) AND BUILD_AVX512 AND NOT HAVE_AVX512)
|
||||||
message(FATAL_ERROR "AVX512 support requested but not supported")
|
message(FATAL_ERROR "AVX512 support requested but not supported")
|
||||||
endif ()
|
endif ()
|
||||||
|
if (BUILD_AVX512VBMI AND NOT HAVE_AVX512VBMI)
|
||||||
|
message(FATAL_ERROR "AVX512VBMI support requested but not supported")
|
||||||
|
endif ()
|
||||||
else (NOT FAT_RUNTIME)
|
else (NOT FAT_RUNTIME)
|
||||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX2)
|
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX2)
|
||||||
message(STATUS "Building without AVX2 support")
|
message(STATUS "Building without AVX2 support")
|
||||||
@ -101,6 +108,9 @@ else (NOT FAT_RUNTIME)
|
|||||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX512)
|
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX512)
|
||||||
message(STATUS "Building without AVX512 support")
|
message(STATUS "Building without AVX512 support")
|
||||||
endif ()
|
endif ()
|
||||||
|
if (ARCH_IA32 OR ARCH_X86_64 AND NOT HAVE_AVX512VBMI)
|
||||||
|
message(STATUS "Building without AVX512VBMI support")
|
||||||
|
endif ()
|
||||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_SSSE3)
|
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_SSSE3)
|
||||||
message(FATAL_ERROR "A minimum of SSSE3 compiler support is required")
|
message(FATAL_ERROR "A minimum of SSSE3 compiler support is required")
|
||||||
endif ()
|
endif ()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user