@@ -26,6 +26,16 @@ diff --git a/swift/utils/build-script-impl b/swift/utils/build-script-impl
26
26
index 16e05052609..7ab8cebfab8 100755
27
27
--- a/swift/utils/build-script-impl
28
28
+++ b/swift/utils/build-script-impl
29
+ @@ -828,6 +828,9 @@ function set_build_options_for_host() {
30
+ # and it must be the same for both LLVM and Swift
31
+
32
+ if [[ "${SWIFT_HOST_TRIPLE}" ]] ; then
33
+ + SWIFT_TARGET_CMAKE_OPTIONS+=(
34
+ + -DCMAKE_Swift_COMPILER_TARGET:STRING="${SWIFT_HOST_TRIPLE}"
35
+ + )
36
+ llvm_cmake_options+=(
37
+ -DLLVM_HOST_TRIPLE:STRING="${SWIFT_HOST_TRIPLE}"
38
+ )
29
39
@@ -2622,6 +2622,7 @@ for host in "${ALL_HOSTS[@]}"; do
30
40
echo "Cleaning the libdispatch build directory"
31
41
call rm -rf "${LIBDISPATCH_BUILD_DIR}"
@@ -48,15 +58,16 @@ index 324d1a77eea..e88601a8701 100644
48
58
49
59
from . import cmake_product
50
60
from . import product
51
- @@ -115,6 +117,22 @@ class SwiftTestingCMakeShim(cmake_product.CMakeProduct):
61
+ @@ -115,6 +117,24 @@ class SwiftTestingCMakeShim(cmake_product.CMakeProduct):
52
62
# FIXME: If we build macros for the builder, specify the path.
53
63
self.cmake_options.define('SwiftTesting_MACRO', 'NO')
54
64
55
65
+ if host_target.startswith('android') and self.is_cross_compile_target(host_target):
56
66
+ host_config = HostSpecificConfiguration(host_target, self.args)
57
67
+ self.cmake_options.extend(host_config.cmake_options)
58
- + flags = '-target %s-unknown-linux-android%s ' % (self.args.android_arch,
59
- + self.args.android_api_level)
68
+ + triple = '%s-unknown-linux-android%s' % (self.args.android_arch,
69
+ + self.args.android_api_level)
70
+ + flags = '-target %s ' % (triple)
60
71
+
61
72
+ flags += '-resource-dir %s/lib/swift ' % (
62
73
+ self.host_install_destdir(host_target) + self.args.install_prefix)
@@ -65,6 +76,7 @@ index 324d1a77eea..e88601a8701 100644
65
76
+ flags += '-sdk %s/sysroot ' % (ndk_path)
66
77
+ flags += '-tools-directory %s/bin' % (ndk_path)
67
78
+ self.cmake_options.define('CMAKE_Swift_FLAGS', flags)
79
+ + self.cmake_options.define('CMAKE_Swift_COMPILER_TARGET', triple)
68
80
+ self.cmake_options.define('CMAKE_CXX_COMPILER_WORKS', 'True')
69
81
+ self.cmake_options.define('CMAKE_FIND_ROOT_PATH', self.args.cross_compile_deps_path)
70
82
+
@@ -83,36 +95,6 @@ index 7f290d16..95366592 100644
83
95
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
84
96
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
85
97
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
86
- diff --git a/swift-corelibs-xctest/cmake/modules/PlatformInfo.cmake b/swift-corelibs-xctest/cmake/modules/PlatformInfo.cmake
87
- index 468dc61..a90ae3d 100644
88
- --- a/swift-corelibs-xctest/cmake/modules/PlatformInfo.cmake
89
- +++ b/swift-corelibs-xctest/cmake/modules/PlatformInfo.cmake
90
- @@ -2,6 +2,10 @@
91
- set(print_target_info_invocation "${CMAKE_Swift_COMPILER}" -print-target-info)
92
- if(CMAKE_Swift_COMPILER_TARGET)
93
- list(APPEND print_target_info_invocation -target ${CMAKE_Swift_COMPILER_TARGET})
94
- + else()
95
- + set(arg_list ${CMAKE_Swift_FLAGS})
96
- + separate_arguments(arg_list)
97
- + list(APPEND print_target_info_invocation ${arg_list})
98
- endif()
99
- execute_process(COMMAND ${print_target_info_invocation} OUTPUT_VARIABLE target_info_json)
100
- message(CONFIGURE_LOG "Swift Target Info: ${print_target_info_invocation}\n"
101
- diff --git a/swift-foundation/cmake/modules/SwiftFoundationSwiftSupport.cmake b/swift-foundation/cmake/modules/SwiftFoundationSwiftSupport.cmake
102
- index cbdfc2a..bb4121d 100644
103
- --- a/swift-foundation/cmake/modules/SwiftFoundationSwiftSupport.cmake
104
- +++ b/swift-foundation/cmake/modules/SwiftFoundationSwiftSupport.cmake
105
- @@ -37,6 +37,10 @@ function(_swift_foundation_install_target module)
106
- set(module_triple_command "${CMAKE_Swift_COMPILER}" -print-target-info)
107
- if(CMAKE_Swift_COMPILER_TARGET)
108
- list(APPEND module_triple_command -target ${CMAKE_Swift_COMPILER_TARGET})
109
- + else()
110
- + set(arg_list ${CMAKE_Swift_FLAGS})
111
- + separate_arguments(arg_list)
112
- + list(APPEND module_triple_command ${arg_list})
113
- endif()
114
- execute_process(COMMAND ${module_triple_command} OUTPUT_VARIABLE target_info_json)
115
- string(JSON module_triple GET "${target_info_json}" "target" "moduleTriple")
116
98
diff --git a/swift-testing/CMakeLists.txt b/swift-testing/CMakeLists.txt
117
99
index 1be9a4b..bd7b1bd 100644
118
100
--- a/swift-testing/CMakeLists.txt
@@ -125,33 +107,3 @@ index 1be9a4b..bd7b1bd 100644
125
107
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
126
108
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
127
109
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
128
- diff --git a/swift-testing/cmake/modules/PlatformInfo.cmake b/swift-testing/cmake/modules/PlatformInfo.cmake
129
- index 94c60ef..ab8a491 100644
130
- --- a/swift-testing/cmake/modules/PlatformInfo.cmake
131
- +++ b/swift-testing/cmake/modules/PlatformInfo.cmake
132
- @@ -9,6 +9,10 @@
133
- set(print_target_info_invocation "${CMAKE_Swift_COMPILER}" -print-target-info)
134
- if(CMAKE_Swift_COMPILER_TARGET)
135
- list(APPEND print_target_info_invocation -target ${CMAKE_Swift_COMPILER_TARGET})
136
- + else()
137
- + set(arg_list ${CMAKE_Swift_FLAGS})
138
- + separate_arguments(arg_list)
139
- + list(APPEND print_target_info_invocation ${arg_list})
140
- endif()
141
- execute_process(COMMAND ${print_target_info_invocation} OUTPUT_VARIABLE target_info_json)
142
- message(CONFIGURE_LOG "Swift Target Info: ${print_target_info_invocation}\n"
143
- diff --git a/swift-testing/cmake/modules/TargetTriple.cmake b/swift-testing/cmake/modules/TargetTriple.cmake
144
- index e087cc4..02f3a95 100644
145
- --- a/swift-testing/cmake/modules/TargetTriple.cmake
146
- +++ b/swift-testing/cmake/modules/TargetTriple.cmake
147
- @@ -10,6 +10,10 @@
148
- set(SWT_TARGET_INFO_COMMAND "${CMAKE_Swift_COMPILER}" -print-target-info)
149
- if(CMAKE_Swift_COMPILER_TARGET)
150
- list(APPEND SWT_TARGET_INFO_COMMAND -target ${CMAKE_Swift_COMPILER_TARGET})
151
- + else()
152
- + set(arg_list ${CMAKE_Swift_FLAGS})
153
- + separate_arguments(arg_list)
154
- + list(APPEND SWT_TARGET_INFO_COMMAND ${arg_list})
155
- endif()
156
- execute_process(COMMAND ${SWT_TARGET_INFO_COMMAND} OUTPUT_VARIABLE SWT_TARGET_INFO_JSON)
157
- string(JSON SWT_TARGET_TRIPLE GET "${SWT_TARGET_INFO_JSON}" "target" "unversionedTriple")
0 commit comments