From 27486b12e1793432dbc324fc8836c2c921d03fce Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 7 Nov 2023 16:55:52 +0000 Subject: [PATCH 1/2] simplify `MATCHES`/`STREQUAL` syntax --- CMakeLists.txt | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 950a79ee17..6695313c18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -333,50 +333,50 @@ if(APPLE AND (NOT CMAKE_OSX_ARCHITECTURES STREQUAL "")) set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_OSX_ARCHITECTURES}") endif() -if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(aarch64|arm64|ARM64)") +if(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|ARM64)") set(HOST_AARCH64 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") set(HOST_ARM true) -elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386") +elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") set(HOST_X86_64 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64|AMD64)") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64|AMD64)") set(HOST_X86_64 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(i[3-6]86|[xX]86)") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86)") set(ENABLE_ASM false) set(HOST_I386 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips64") set(HOST_MIPS64 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips") set(HOST_MIPS true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "powerpc") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc") set(HOST_POWERPC true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "ppc64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64") set(HOST_PPC64 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "riscv64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64") set(HOST_RISCV64 true) -elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "sparc64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "sparc64") set(HOST_SPARC64 true) else() set(ENABLE_ASM false) endif() if(ENABLE_ASM) - if("${CMAKE_C_COMPILER_ABI}" STREQUAL "ELF") - if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)") + if(CMAKE_C_COMPILER_ABI STREQUAL "ELF") + if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)") set(HOST_ASM_ELF_X86_64 true) - elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm" AND - NOT "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm64") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" AND + NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") set(HOST_ASM_ELF_ARMV4 true) - elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386") + elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") set(HOST_ASM_ELF_X86_64 true) endif() add_definitions(-DHAVE_GNU_STACK) - elseif(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") + elseif(APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") set(HOST_ASM_MACOSX_X86_64 true) - elseif(MSVC AND ("${CMAKE_GENERATOR}" MATCHES "Win64" OR "${CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64")) + elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Win64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "x64")) set(HOST_ASM_MASM_X86_64 true) ENABLE_LANGUAGE(ASM_MASM) - elseif(MINGW AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") + elseif(MINGW AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") set(HOST_ASM_MINGW64_X86_64 true) endif() endif() From abf3be5c56f68ecf4fe1e268d8a5515d8c8734ec Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 7 Nov 2023 17:00:56 +0000 Subject: [PATCH 2/2] always check `CMAKE_SYSTEM_PROCESSOR` with `MATCHES` This makes it accept values consistently. Before this patch mingw-w64, Apple and SunOS did not accept a CPU if it had a suffix or prefix (e.g. a triplet), while other targets did. --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6695313c18..e8f93272df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -337,7 +337,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|ARM64)") set(HOST_AARCH64 true) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") set(HOST_ARM true) -elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") +elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386") set(HOST_X86_64 true) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64|AMD64)") set(HOST_X86_64 true) @@ -367,16 +367,16 @@ if(ENABLE_ASM) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64") set(HOST_ASM_ELF_ARMV4 true) - elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") + elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386") set(HOST_ASM_ELF_X86_64 true) endif() add_definitions(-DHAVE_GNU_STACK) - elseif(APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + elseif(APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") set(HOST_ASM_MACOSX_X86_64 true) elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Win64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "x64")) set(HOST_ASM_MASM_X86_64 true) ENABLE_LANGUAGE(ASM_MASM) - elseif(MINGW AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + elseif(MINGW AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") set(HOST_ASM_MINGW64_X86_64 true) endif() endif()