@@ -71,3 +71,36 @@ function(add_swift_library library)
71
71
${ASL_MODULE_PATH}
72
72
${module_directory} /${ASL_MODULE_NAME} .swiftdoc)
73
73
endfunction ()
74
+
75
+ # Returns the current achitecture name in a variable
76
+ #
77
+ # Usage:
78
+ # get_swift_host_arch(result_var_name)
79
+ #
80
+ # If the current architecture is supported by Swift, sets ${result_var_name}
81
+ # with the sanitized host architecture name derived from CMAKE_SYSTEM_PROCESSOR.
82
+ function (get_swift_host_arch result_var_name)
83
+ if ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "x86_64" )
84
+ set ("${result_var_name} " "x86_64" PARENT_SCOPE)
85
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "aarch64" )
86
+ set ("${result_var_name} " "aarch64" PARENT_SCOPE)
87
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64" )
88
+ set ("${result_var_name} " "powerpc64" PARENT_SCOPE)
89
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64le" )
90
+ set ("${result_var_name} " "powerpc64le" PARENT_SCOPE)
91
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "s390x" )
92
+ set ("${result_var_name} " "s390x" PARENT_SCOPE)
93
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "armv6l" )
94
+ set ("${result_var_name} " "armv6" PARENT_SCOPE)
95
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "armv7l" )
96
+ set ("${result_var_name} " "armv7" PARENT_SCOPE)
97
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "AMD64" )
98
+ set ("${result_var_name} " "x86_64" PARENT_SCOPE)
99
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "IA64" )
100
+ set ("${result_var_name} " "itanium" PARENT_SCOPE)
101
+ elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "x86" )
102
+ set ("${result_var_name} " "i686" PARENT_SCOPE)
103
+ else ()
104
+ message (FATAL_ERROR "Unrecognized architecture on host system: ${CMAKE_SYSTEM_PROCESSOR} " )
105
+ endif ()
106
+ endfunction ()
0 commit comments