diff options
Diffstat (limited to 'mysys/CMakeLists.txt')
-rw-r--r-- | mysys/CMakeLists.txt | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt index c6d476c9fa4..92269538c58 100644 --- a/mysys/CMakeLists.txt +++ b/mysys/CMakeLists.txt @@ -16,7 +16,7 @@ INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/mysys) -SET(MYSYS_SOURCES array.c charset-def.c charset.c crc32ieee.cc my_default.c +SET(MYSYS_SOURCES array.c charset-def.c charset.c my_default.c get_password.c errors.c hash.c list.c mf_cache.c mf_dirname.c mf_fn_ext.c @@ -60,19 +60,29 @@ ENDIF() IF(MSVC) SET(MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32_x86.c) + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET (MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32c_amd64.cc) + ENDIF() ADD_DEFINITIONS(-DHAVE_SSE42 -DHAVE_PCLMUL) IF(CLANG_CL) - SET_SOURCE_FILES_PROPERTIES(crc32/crc32_x86.cc crc32/crc32c.c PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul") + SET_SOURCE_FILES_PROPERTIES(crc32/crc32_x86.c PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul") ENDIF() ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|i386|i686") - MY_CHECK_C_COMPILER_FLAG(-msse4.2) - MY_CHECK_C_COMPILER_FLAG(-mpclmul) + MY_CHECK_CXX_COMPILER_FLAG(-msse4.2) + MY_CHECK_CXX_COMPILER_FLAG(-mpclmul) CHECK_INCLUDE_FILE(cpuid.h HAVE_CPUID_H) CHECK_INCLUDE_FILE(x86intrin.h HAVE_X86INTRIN_H) - IF(have_C__msse4.2 AND have_C__mpclmul AND HAVE_CPUID_H AND HAVE_X86INTRIN_H) - SET(MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32_x86.c) - SET_SOURCE_FILES_PROPERTIES(crc32/crc32_x86.c crc32/crc32c.cc PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul") - ADD_DEFINITIONS(-DHAVE_SSE42 -DHAVE_PCLMUL) + IF(have_CXX__msse4.2 AND HAVE_CPUID_H) + ADD_DEFINITIONS(-DHAVE_SSE42) + IF (have_CXX__mpclmul AND HAVE_X86INTRIN_H) + ADD_DEFINITIONS(-DHAVE_PCLMUL) + SET(MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32_x86.c) + SET_SOURCE_FILES_PROPERTIES(crc32/crc32_x86.c PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul") + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET(MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32c_amd64.cc) + SET_SOURCE_FILES_PROPERTIES(crc32/crc32c_amd64.cc PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul") + ENDIF() + ENDIF() ENDIF() ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64") IF(CMAKE_COMPILER_IS_GNUCC) @@ -129,11 +139,15 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64") COMPILE_FLAGS "-march=armv8-a+crc+crypto") ENDIF() ENDIF() -ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64|powerpc64" OR CMAKE_SYSTEM_NAME MATCHES AIX) +ENDIF() + +IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64|powerpc64" OR CMAKE_SYSTEM_NAME MATCHES AIX) SET(MYSYS_SOURCES ${MYSYS_SOURCES} crc32/crc32_ppc64.c crc32/crc32c_ppc.c) SET_SOURCE_FILES_PROPERTIES(crc32/crc32_ppc64.c crc32/crc32c_ppc.c PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -maltivec -mvsx -mpower8-vector -mcrypto -mpower8-vector") ADD_DEFINITIONS(-DHAVE_POWER8 -DHAS_ALTIVEC) +ELSE() + SET (MYSYS_SOURCES ${MYSYS_SOURCES} crc32ieee.cc) ENDIF() IF(UNIX) |