@@ -156,3 +156,35 @@ function(add_swift_executable executable)
156
156
add_swift_target (${executable} ${ARGN} )
157
157
endfunction ()
158
158
159
+ # Returns the current achitecture name in a variable
160
+ #
161
+ # Usage:
162
+ # get_swift_host_arch(result_var_name)
163
+ #
164
+ # If the current architecture is supported by Swift, sets ${result_var_name}
165
+ # with the sanitized host architecture name derived from CMAKE_SYSTEM_PROCESSOR.
166
+ function (get_swift_host_arch result_var_name )
167
+ if ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "x86_64" )
168
+ set ("${result_var_name} " "x86_64" PARENT_SCOPE )
169
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "aarch64" )
170
+ set ("${result_var_name} " "aarch64" PARENT_SCOPE )
171
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64" )
172
+ set ("${result_var_name} " "powerpc64" PARENT_SCOPE )
173
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64le" )
174
+ set ("${result_var_name} " "powerpc64le" PARENT_SCOPE )
175
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "s390x" )
176
+ set ("${result_var_name} " "s390x" PARENT_SCOPE )
177
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "armv6l" )
178
+ set ("${result_var_name} " "armv6" PARENT_SCOPE )
179
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "armv7l" )
180
+ set ("${result_var_name} " "armv7" PARENT_SCOPE )
181
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "AMD64" )
182
+ set ("${result_var_name} " "x86_64" PARENT_SCOPE )
183
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "IA64" )
184
+ set ("${result_var_name} " "itanium" PARENT_SCOPE )
185
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "x86" )
186
+ set ("${result_var_name} " "i686" PARENT_SCOPE )
187
+ else ()
188
+ message (FATAL_ERROR "Unrecognized architecture on host system: ${CMAKE_SYSTEM_PROCESSOR} " )
189
+ endif ()
190
+ endfunction ()
0 commit comments