aboutsummaryrefslogtreecommitdiff
path: root/dep
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-02-17 01:13:36 +0100
committerShauren <shauren.trinity@gmail.com>2024-02-17 01:13:36 +0100
commit7e51d17a0aa06c7aaf25a836d90487b17383fca7 (patch)
tree0de0c15daa78dfc20d18dd1b9bc5db6f67af5332 /dep
parent9ec1cc07b45ec703028636b2a4302d4a238d090a (diff)
Build: Improve ARM target detection in cmake (needed by MSVC)
Diffstat (limited to 'dep')
-rw-r--r--dep/SFMT/CMakeLists.txt62
-rw-r--r--dep/argon2/CMakeLists.txt2
-rw-r--r--dep/jemalloc/CMakeLists.txt2
-rw-r--r--dep/rapidjson/CMakeLists.txt6
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()