@@ -77,30 +77,30 @@ 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  "^ sparc64.* " )
95+   elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "sparc64" )
9696    set (prefix  "sparc64_sysv" )
97-   elseif (CMAKE_SYSTEM_PROCESSOR  MATCHES  "s390x.* " )
97+   elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "s390x" )
9898    set (prefix  "s390x_sysv" )
99-   elseif (CMAKE_SYSTEM_PROCESSOR  MATCHES  "^ loongarch64.* " )
99+   elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "loongarch64" )
100100    set (prefix  "loongarch_sysv" )
101-   elseif (CMAKE_SYSTEM_PROCESSOR   STREQUAL  "mips64" )
101+   elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "mips64" )
102102    set (prefix  "mips64_n64" )
103-   elseif (CMAKE_SYSTEM_PROCESSOR   STREQUAL  "mips" )
103+   elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "mips" )
104104    set (prefix  "mips32_o32" )
105105  endif ()
106106
@@ -115,22 +115,22 @@ block()
115115      set (asmFile "${prefix} _elf_gas.S" )
116116    endif ()
117117  elseif (CMAKE_SYSTEM_NAME  STREQUAL  "Windows" )
118-     if (CMAKE_SYSTEM_PROCESSOR  MATCHES  "^ (x86_64|amd64|AMD64)$ " )
118+     if (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "(x86_64|x64) " )
119119      set (asmFile "x86_64_ms_pe_masm.asm" )
120-     elseif (CMAKE_SYSTEM_PROCESSOR  MATCHES  "^(x86|i.?86.*|pentium)$ " )
120+     elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "(X86|i[3456]86) " )
121121      set (asmFile "i386_ms_pe_masm.asm" )
122-     elseif (CMAKE_SYSTEM_PROCESSOR  MATCHES  "^(arm64| ARM64)$ " )
122+     elseif (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "( ARM64|aarch64) " )
123123      set (asmFile "arm64_aapcs_pe_armasm.asm" )
124124      set (compileOptions /nologo -machine ARM64)
125125    endif ()
126126
127-     if (asmFile AND  NOT  CMAKE_SYSTEM_PROCESSOR  MATCHES  "^(arm64| ARM64)$ " )
127+     if (asmFile AND  NOT  CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "( ARM64|aarch64) " )
128128      set (compileOptions /nologo)
129129
130130      set (compileDefinitions "BOOST_CONTEXT_EXPORT=EXPORT" )
131131    endif ()
132132  elseif (CMAKE_SYSTEM_NAME  STREQUAL  "Midipix" )
133-     if (CMAKE_SYSTEM_PROCESSOR  MATCHES  "^( x86_64|amd64)$ " )
133+     if (CMAKE_C_COMPILER_ARCHITECTURE_ID  MATCHES  "x86_64" )
134134      set (asmFile "x86_64_ms_pe_gas.S" )
135135    endif ()
136136  elseif (prefix )
0 commit comments