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