Skip to content

Commit acc899a

Browse files
committed
Use CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID
This variable was made public only recently and hasn't been much used out there yet. Determining target processor in CMake is these days done with this variable instead of CMAKE_SYSTEM_PROCESSOR.
1 parent ad8e3b8 commit acc899a

File tree

13 files changed

+47
-40
lines changed

13 files changed

+47
-40
lines changed

cmake/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ endif()
3030

3131
# Enable Assembly language dialect.
3232
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
33-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^ARM")
33+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ARM|arm|aarch64)")
3434
enable_language(ASM_MARMASM)
3535
else()
3636
enable_language(ASM_MASM)

cmake/Zend/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ project(
4444

4545
# Enable Assembly language dialect.
4646
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
47-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^ARM")
47+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ARM|arm|aarch64)")
4848
enable_language(ASM_MARMASM)
4949
else()
5050
enable_language(ASM_MASM)

cmake/Zend/cmake/Fibers.cmake

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -77,26 +77,26 @@ block()
7777
set(compileDefinitions "")
7878

7979
# Determine files based on the architecture and platform.
80-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64)$")
80+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "x86_64")
8181
set(prefix "x86_64_sysv")
82-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86.*|amd.*|i.?86.*|pentium)$")
82+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "i[3456]86")
8383
set(cpu "i386")
8484
set(prefix "i386_sysv")
85-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|arm64.*)")
85+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(aarch64|arm64)")
8686
set(prefix "arm64_aapcs")
87-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*")
87+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "arm")
8888
set(prefix "arm_aapcs")
89-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64.*|powerpc64.*")
89+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ppc64|PPC64)")
9090
set(prefix "ppc64_sysv")
91-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc.*|powerpc.*")
91+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ppc|PPC)")
9292
set(prefix "ppc32_sysv")
93-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64.*")
93+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(riscv64|RISCV)")
9494
set(prefix "riscv64_sysv")
95-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x.*")
95+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "s390x")
9696
set(prefix "s390x_sysv")
97-
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "mips64")
97+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "mips64")
9898
set(prefix "mips64_n64")
99-
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "mips")
99+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "mips")
100100
set(prefix "mips32_o32")
101101
endif()
102102

@@ -111,16 +111,16 @@ block()
111111
set(asmFile "${prefix}_elf_gas.S")
112112
endif()
113113
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
114-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64|AMD64)$")
114+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(x86_64|x64)")
115115
set(asmFile "x86_64_ms_pe_masm.asm")
116-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86|i.?86.*|pentium)$")
116+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(X86|i[3456]86)")
117117
set(asmFile "i386_ms_pe_masm.asm")
118-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|ARM64)$")
118+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ARM64|aarch64)")
119119
set(asmFile "arm64_aapcs_pe_armasm.asm")
120120
set(compileOptions /nologo -machine ARM64)
121121
endif()
122122

123-
if(asmFile AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|ARM64)$")
123+
if(asmFile AND NOT CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ARM64|aarch64)")
124124
set(compileOptions /nologo)
125125

126126
set(compileDefinitions "BOOST_CONTEXT_EXPORT=EXPORT")

cmake/cmake/Configuration.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ set(PHP_BUILD_SYSTEM "${PHP_UNAME}" CACHE STRING "Build system uname")
3434
mark_as_advanced(PHP_BUILD_SYSTEM)
3535

3636
set(
37-
PHP_BUILD_ARCH "${CMAKE_SYSTEM_PROCESSOR}"
37+
PHP_BUILD_ARCH "${CMAKE_C_COMPILER_ARCHITECTURE_ID}"
3838
CACHE STRING "Build target architecture displayed in phpinfo"
3939
)
4040
mark_as_advanced(PHP_BUILD_ARCH)

cmake/cmake/ConfigureChecks.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ php_search_libraries(
616616
TARGET php_config INTERFACE
617617
)
618618

619-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64.*")
619+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(riscv64|RISCV)")
620620
find_package(Atomic)
621621

622622
if(Atomic_FOUND)

cmake/cmake/Flags.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ include(PHP/CheckCompilerFlag)
1111
get_property(enabledLanguages GLOBAL PROPERTY ENABLED_LANGUAGES)
1212

1313
# See https://bugs.php.net/28605.
14-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha")
14+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "alpha")
1515
if(CMAKE_C_COMPILER_ID MATCHES "^(.*Clang|GNU)$")
1616
target_compile_options(php_config INTERFACE $<$<COMPILE_LANGUAGE:C>:-mieee>)
1717
else()

cmake/cmake/Summary.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include(FeatureSummary)
1414
# Add new item to the summary preamble with dotted leader.
1515
function(_php_summary_preamble_add_item label value output)
1616
# Template helper to calculate column width.
17-
set(template " * <label> .................... : <value>")
17+
set(template " * <label> ........................... : <value>")
1818
string(REGEX MATCH "^ \\\* ([^ ]+ [.]+)" _ "${template}")
1919
string(LENGTH "${CMAKE_MATCH_1}" columnWidth)
2020

@@ -149,6 +149,12 @@ function(_php_summary_preamble result)
149149
preamble
150150
)
151151

152+
_php_summary_preamble_add_item(
153+
"CMAKE_C_COMPILER_ARCHITECTURE_ID"
154+
"${CMAKE_C_COMPILER_ARCHITECTURE_ID}"
155+
preamble
156+
)
157+
152158
_php_summary_preamble_add_item(
153159
"CMake version"
154160
"${CMAKE_VERSION}"

cmake/cmake/checks/CheckSegmentsAlignment.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ message(
2424

2525
if(
2626
NOT CMAKE_SYSTEM_NAME STREQUAL "Linux"
27-
OR NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3456]86.*|x86_64)$"
27+
OR NOT CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(i[3456]86|x86_64)"
2828
)
2929
message(CHECK_FAIL "no")
3030
return()

cmake/cmake/modules/FindMC.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ block()
122122

123123
# Adjustments for architecture whether target is 64-bit or 32-bit.
124124
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
125-
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
125+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(ARM64|aarch64)")
126126
list(TRANSFORM hints APPEND /arm64)
127127
else()
128128
list(TRANSFORM hints APPEND /x64)

cmake/ext/opcache/CMakeLists.txt

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -130,20 +130,16 @@ endif()
130130

131131
# Check if JIT is supported by the target architecture.
132132
if(PHP_EXT_OPCACHE_JIT)
133-
if(
134-
# *nix:
135-
NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[34567]86.*|x86.*|amd64|aarch64.*)$"
136-
# Windows:
137-
AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(X86|AMD64|ARM64)$"
138-
)
133+
if(NOT CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(i[3456]86|x86_64|aarch64|arm64|x64|X86|ARM64)")
139134
message(
140135
WARNING
141-
"JIT is not supported by target architecture ${CMAKE_SYSTEM_PROCESSOR}"
136+
"JIT is not supported by target architecture "
137+
"${CMAKE_C_COMPILER_ARCHITECTURE_ID}"
142138
)
143139
set_property(CACHE PHP_EXT_OPCACHE_JIT PROPERTY VALUE OFF)
144140
elseif(
145141
CMAKE_SYSTEM_NAME STREQUAL "Darwin"
146-
AND CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64.*$"
142+
AND CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "arm64"
147143
AND PHP_THREAD_SAFETY
148144
)
149145
message(
@@ -163,18 +159,18 @@ target_include_directories(
163159

164160
if(PHP_EXT_OPCACHE_JIT)
165161
# Find out which ABI to use.
166-
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64|AMD64|ARM64)$")
162+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(x86_64|x64)")
167163
set(DASM_FLAGS -D X64=1)
168164
set(DASM_ARCH "x86")
169-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[34567]86.*|x86.*|X86)$")
165+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(i[34567]86|X86)")
170166
set(DASM_ARCH "x86")
171-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64.*")
167+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(arm64|ARM64|aarch64)")
172168
set(DASM_FLAGS -D ARM64=1)
173169
set(DASM_ARCH "arm64")
174170
endif()
175171

176172
if(
177-
CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64"
173+
CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "x86_64"
178174
AND CMAKE_SYSTEM_NAME STREQUAL "Darwin"
179175
)
180176
list(APPEND DASM_FLAGS -D X64APPLE=1)
@@ -185,7 +181,7 @@ if(PHP_EXT_OPCACHE_JIT)
185181
endif()
186182

187183
if(
188-
CMAKE_SYSTEM_PROCESSOR MATCHES "^(AMD64|ARM64)$"
184+
CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "(x86_64|x64|ARM64|aarch64)"
189185
AND CMAKE_SYSTEM_NAME STREQUAL "Windows"
190186
)
191187
list(APPEND DASM_FLAGS -D X64WIN=1)

0 commit comments

Comments
 (0)