diff options
author | Brent Cook <busterb@gmail.com> | 2023-10-29 12:01:49 -0500 |
---|---|---|
committer | Brent Cook <busterb@gmail.com> | 2023-10-29 12:01:49 -0500 |
commit | 80489416222831efbfa3d0e2c74e39bfddb2dcb8 (patch) | |
tree | 7577b381afc73ba4f692c9728504c217a621eaed | |
parent | fe731f3db0177af78a6615ecd79926e0bfd9288a (diff) | |
parent | 321fa56d9af8f4cb0ce7cd69d4f91b8c1a37b7a8 (diff) | |
download | portable-80489416222831efbfa3d0e2c74e39bfddb2dcb8.tar.gz portable-80489416222831efbfa3d0e2c74e39bfddb2dcb8.tar.bz2 portable-80489416222831efbfa3d0e2c74e39bfddb2dcb8.zip |
Land #909, Fix processor detection with Cmake
-rw-r--r-- | CMakeLists.txt | 39 | ||||
-rwxr-xr-x | update.sh | 1 |
2 files changed, 20 insertions, 20 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ca593f2..a1a0077 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -63,11 +63,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) | |||
63 | endif() | 63 | endif() |
64 | 64 | ||
65 | # Enable asserts regardless of build type | 65 | # Enable asserts regardless of build type |
66 | if(MSVC) | 66 | add_definitions(-UNDEBUG) |
67 | add_definitions(/UNDEBUG) | ||
68 | else() | ||
69 | add_definitions(-UNDEBUG) | ||
70 | endif() | ||
71 | 67 | ||
72 | set(BUILD_NC true) | 68 | set(BUILD_NC true) |
73 | 69 | ||
@@ -152,17 +148,17 @@ if(MSVC) | |||
152 | "C4100" # 'identifier' : unreferenced formal parameter | 148 | "C4100" # 'identifier' : unreferenced formal parameter |
153 | "C4127" # conditional expression is constant | 149 | "C4127" # conditional expression is constant |
154 | "C4146" # unary minus operator applied to unsigned type, | 150 | "C4146" # unary minus operator applied to unsigned type, |
155 | # result still unsigned | 151 | # result still unsigned |
156 | "C4244" # 'argument' : conversion from 'type1' to 'type2', | 152 | "C4244" # 'argument' : conversion from 'type1' to 'type2', |
157 | # possible loss of data | 153 | # possible loss of data |
158 | "C4245" # 'conversion' : conversion from 'type1' to 'type2', | 154 | "C4245" # 'conversion' : conversion from 'type1' to 'type2', |
159 | # signed/unsigned mismatch | 155 | # signed/unsigned mismatch |
160 | "C4267" # 'var' : conversion from 'size_t' to 'type', | 156 | "C4267" # 'var' : conversion from 'size_t' to 'type', |
161 | # possible loss of data | 157 | # possible loss of data |
162 | "C4389" # 'operator' : signed/unsigned mismatch | 158 | "C4389" # 'operator' : signed/unsigned mismatch |
163 | "C4706" # assignment within conditional expression | 159 | "C4706" # assignment within conditional expression |
164 | "C4996" # The POSIX name for this item is deprecated. | 160 | "C4996" # The POSIX name for this item is deprecated. |
165 | # Instead, use the ISO C and C++ conformant name | 161 | # Instead, use the ISO C and C++ conformant name |
166 | ) | 162 | ) |
167 | elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") | 163 | elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") |
168 | add_definitions(-D_CRT_SUPPRESS_RESTRICT) | 164 | add_definitions(-D_CRT_SUPPRESS_RESTRICT) |
@@ -333,32 +329,35 @@ endif() | |||
333 | # single architecture work on macOS at least. | 329 | # single architecture work on macOS at least. |
334 | # | 330 | # |
335 | # Don't set CMAKE_OSX_ARCHITECTURES to more than a single value for now. | 331 | # Don't set CMAKE_OSX_ARCHITECTURES to more than a single value for now. |
336 | if(APPLE) | 332 | if(APPLE AND (NOT CMAKE_OSX_ARCHITECTURES STREQUAL "")) |
337 | set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_OSX_ARCHITECTURES}") | 333 | set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_OSX_ARCHITECTURES}") |
338 | endif() | 334 | endif() |
339 | 335 | ||
340 | if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(aarch64|arm64)") | 336 | if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(aarch64|arm64|ARM64)") |
341 | set(HOST_AARCH64 true) | 337 | set(HOST_AARCH64 true) |
342 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm") | 338 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm") |
343 | set(HOST_ARM true) | 339 | set(HOST_ARM true) |
344 | elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386") | 340 | elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386") |
345 | set(HOST_X86_64 true) | 341 | set(HOST_X86_64 true) |
346 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)") | 342 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64|AMD64)") |
347 | set(HOST_X86_64 true) | 343 | set(HOST_X86_64 true) |
348 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "[i?86|x86]") | 344 | if (MSVC) |
345 | set(ENABLE_ASM false) | ||
346 | endif() | ||
347 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(i[3-6]86|[xX]86)") | ||
349 | set(ENABLE_ASM false) | 348 | set(ENABLE_ASM false) |
350 | set(HOST_I386 true) | 349 | set(HOST_I386 true) |
351 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "mips64") | 350 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips64") |
352 | set(HOST_MIPS64 true) | 351 | set(HOST_MIPS64 true) |
353 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "mips") | 352 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips") |
354 | set(HOST_MIPS true) | 353 | set(HOST_MIPS true) |
355 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "powerpc") | 354 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "powerpc") |
356 | set(HOST_POWERPC true) | 355 | set(HOST_POWERPC true) |
357 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "ppc64") | 356 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "ppc64") |
358 | set(HOST_PPC64 true) | 357 | set(HOST_PPC64 true) |
359 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "riscv64") | 358 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "riscv64") |
360 | set(HOST_RISCV64 true) | 359 | set(HOST_RISCV64 true) |
361 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "sparc64") | 360 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "sparc64") |
362 | set(HOST_SPARC64 true) | 361 | set(HOST_SPARC64 true) |
363 | else() | 362 | else() |
364 | set(ENABLE_ASM false) | 363 | set(ENABLE_ASM false) |
@@ -191,6 +191,7 @@ fixup_masm() { | |||
191 | | sed -e 's/|/OR/g' \ | 191 | | sed -e 's/|/OR/g' \ |
192 | | sed -e 's/~/NOT/g' \ | 192 | | sed -e 's/~/NOT/g' \ |
193 | | sed -e 's/1 << \([0-9]*\)/1 SHL \1/g' \ | 193 | | sed -e 's/1 << \([0-9]*\)/1 SHL \1/g' \ |
194 | | sed -e 's/^ALIGN.*//g' \ | ||
194 | > $2 | 195 | > $2 |
195 | } | 196 | } |
196 | 197 | ||