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