diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-02-17 01:13:36 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-02-17 01:13:36 +0100 |
commit | 7e51d17a0aa06c7aaf25a836d90487b17383fca7 (patch) | |
tree | 0de0c15daa78dfc20d18dd1b9bc5db6f67af5332 /dep | |
parent | 9ec1cc07b45ec703028636b2a4302d4a238d090a (diff) |
Build: Improve ARM target detection in cmake (needed by MSVC)
Diffstat (limited to 'dep')
-rw-r--r-- | dep/SFMT/CMakeLists.txt | 62 | ||||
-rw-r--r-- | dep/argon2/CMakeLists.txt | 2 | ||||
-rw-r--r-- | dep/jemalloc/CMakeLists.txt | 2 | ||||
-rw-r--r-- | dep/rapidjson/CMakeLists.txt | 6 |
4 files changed, 35 insertions, 37 deletions
diff --git a/dep/SFMT/CMakeLists.txt b/dep/SFMT/CMakeLists.txt index bd8e30911c3..117fae8ba4c 100644 --- a/dep/SFMT/CMakeLists.txt +++ b/dep/SFMT/CMakeLists.txt @@ -39,38 +39,38 @@ target_include_directories(sfmt target_compile_definitions(sfmt PUBLIC -DSFMT_MEXP=19937) # enable SIMD instructions if available -include(CheckCCompilerFlag) -if (CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64|(powerpc|ppc)64le") - check_c_compiler_flag("-maltivec" HAVE_ALTIVEC) - if (HAVE_ALTIVEC) - target_compile_options(sfmt PRIVATE -mabi=altivec -maltivec) - target_compile_definitions(sfmt PUBLIC -DHAVE_ALTIVEC) - else () - message(WARNING "Altivec not available - performance will be poor!") - endif () -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM") - check_c_compiler_flag(-mfpu=neon HAVE_NEON) - if (HAVE_NEON) - target_compile_options(sfmt PRIVATE -mfpu=neon -ftree-vectorize) - target_compile_definitions(sfmt PUBLIC -DHAVE_NEON) - else () - message(WARNING "Neon not available - performance will be poor!") - endif () -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64") - check_c_compiler_flag(-march=armv8-a+simd HAVE_NEON) - if (HAVE_NEON) - target_compile_options(sfmt PRIVATE -ftree-vectorize) - target_compile_definitions(sfmt PUBLIC -DHAVE_NEON) +include(CheckCXXCompilerFlag) + +# MSVC does not have any flags to check +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + if (TRINITY_SYSTEM_PROCESSOR MATCHES "^arm") + set(HAVE_NEON 1) else () - message(WARNING "Neon not available - performance will be poor!") + set(HAVE_SSE2 1) endif () -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64") - #SSE2 is always available - set(HAVE_SSE2 1) - - if (NOT CMAKE_C_COMPILER_ID MATCHES "MSVC") +else () + if (TRINITY_SYSTEM_PROCESSOR STREQUAL "arm") + check_cxx_compiler_flag(-mfpu=neon HAVE_NEON) + if (HAVE_NEON) + target_compile_options(sfmt PRIVATE -mfpu=neon -ftree-vectorize) + endif() + elseif (TRINITY_SYSTEM_PROCESSOR STREQUAL "arm64") + check_cxx_compiler_flag(-march=armv8-a+simd HAVE_NEON) + if (HAVE_NEON) + target_compile_options(sfmt PRIVATE -ftree-vectorize) + endif () + elseif (TRINITY_SYSTEM_PROCESSOR MATCHES "x86|amd64") + #SSE2 is always available + set(HAVE_SSE2 1) target_compile_options(sfmt PRIVATE -msse2) endif () +endif () + +if (HAVE_NEON) + target_compile_definitions(sfmt PUBLIC -DHAVE_NEON) +endif () + +if (HAVE_SSE2) target_compile_definitions(sfmt PUBLIC -DHAVE_SSE2) endif () @@ -80,6 +80,6 @@ set_target_properties(sfmt PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(sfmt PRIVATE trinity-dependency-interface) set_target_properties(sfmt - PROPERTIES - FOLDER - "dep") + PROPERTIES + FOLDER + "dep") diff --git a/dep/argon2/CMakeLists.txt b/dep/argon2/CMakeLists.txt index e21f7a61a0c..f503afaa6d9 100644 --- a/dep/argon2/CMakeLists.txt +++ b/dep/argon2/CMakeLists.txt @@ -10,7 +10,7 @@ file(GLOB_RECURSE sources *.c) -if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64") +if(TRINITY_SYSTEM_PROCESSOR MATCHES "x86|amd64") list(REMOVE_ITEM sources ${CMAKE_CURRENT_SOURCE_DIR}/argon2/ref.c) else() diff --git a/dep/jemalloc/CMakeLists.txt b/dep/jemalloc/CMakeLists.txt index 653c322f5f7..fb68395a40b 100644 --- a/dep/jemalloc/CMakeLists.txt +++ b/dep/jemalloc/CMakeLists.txt @@ -28,7 +28,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT NOJEM) set(JEM_MADFREE_DEF "#undef") endif() - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + if(TRINITY_SYSTEM_PROCESSOR MATCHES "arm") set(JEM_CPU_SPINWAIT "") set(JEM_HAVE_CPU_SPINWAIT 0) else() diff --git a/dep/rapidjson/CMakeLists.txt b/dep/rapidjson/CMakeLists.txt index 026247efa5e..58c4d48f09a 100644 --- a/dep/rapidjson/CMakeLists.txt +++ b/dep/rapidjson/CMakeLists.txt @@ -20,10 +20,8 @@ target_compile_definitions(rapidjson -DRAPIDJSON_48BITPOINTER_OPTIMIZATION=0 -DRAPIDJSON_ASSERT=WPAssert) -if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(AMD64|amd64)|(^i.86$)") +if(TRINITY_SYSTEM_PROCESSOR MATCHES "x86|amd64") target_compile_definitions(rapidjson INTERFACE -DRAPIDJSON_SSE2) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") - target_compile_definitions(rapidjson INTERFACE -DRAPIDJSON_NEON) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") +elseif(TRINITY_SYSTEM_PROCESSOR MATCHES "^arm") target_compile_definitions(rapidjson INTERFACE -DRAPIDJSON_NEON) endif() |