-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathswift-android-ci-release.patch
170 lines (158 loc) · 6.25 KB
/
swift-android-ci-release.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
diff --git a/llbuild/products/llbuildSwift/BuildSystemBindings.swift b/llbuild/products/llbuildSwift/BuildSystemBindings.swift
index 6962fff5..8f1bf502 100644
--- a/llbuild/products/llbuildSwift/BuildSystemBindings.swift
+++ b/llbuild/products/llbuildSwift/BuildSystemBindings.swift
@@ -17,8 +17,8 @@ import WinSDK
import Glibc
#elseif canImport(Musl)
import Musl
-#elseif canImport(Bionic)
-import Bionic
+#elseif canImport(Android)
+import Android
#else
#error("Missing libc or equivalent")
#endif
@@ -1293,7 +1293,7 @@ public final class BuildSystem {
#elseif os(Windows)
info.pointee.mod_time.seconds = UInt64(s.st_mtime)
info.pointee.mod_time.nanoseconds = 0
- #elseif canImport(Glibc) || canImport(Musl) || canImport(Bionic)
+ #elseif canImport(Glibc) || canImport(Musl) || canImport(Android)
info.pointee.mod_time.seconds = UInt64(s.st_mtim.tv_sec)
info.pointee.mod_time.nanoseconds = UInt64(s.st_mtim.tv_nsec)
#else
diff --git a/llbuild/unittests/CMakeLists.txt b/llbuild/unittests/CMakeLists.txt
index 92a1ee38..52273afb 100644
--- a/llbuild/unittests/CMakeLists.txt
+++ b/llbuild/unittests/CMakeLists.txt
@@ -6,9 +6,9 @@ function(add_llbuild_unittest test_dirname)
endfunction()
add_subdirectory(Basic)
-add_subdirectory(CAS)
+#add_subdirectory(CAS)
add_subdirectory(CAPI)
add_subdirectory(Core)
add_subdirectory(Evo)
add_subdirectory(BuildSystem)
-add_subdirectory(Ninja)
+#add_subdirectory(Ninja)
diff --git a/sourcekit-lsp/Sources/SKSupport/Process+Run.swift b/sourcekit-lsp/Sources/SKSupport/Process+Run.swift
--- a/sourcekit-lsp/Sources/SKSupport/Process+Run.swift
+++ b/sourcekit-lsp/Sources/SKSupport/Process+Run.swift
@@ -22,6 +22,8 @@
#if os(Windows)
import WinSDK
+#elseif canImport(Android)
+import Android
#endif
extension Process {
diff --git a/sourcekit-lsp/Sources/sourcekit-lsp/SourceKitLSP.swift b/sourcekit-lsp/Sources/sourcekit-lsp/SourceKitLSP.swift
--- a/sourcekit-lsp/Sources/sourcekit-lsp/SourceKitLSP.swift
+++ b/sourcekit-lsp/Sources/sourcekit-lsp/SourceKitLSP.swift
@@ -28,6 +28,9 @@
import struct TSCBasic.AbsolutePath
import struct TSCBasic.RelativePath
import var TSCBasic.localFileSystem
+#if canImport(Android)
+import Android
+#endif
extension AbsolutePath {
public init?(argument: String) {
diff --git a/sourcekit-lsp/Utilities/build-script-helper.py b/sourcekit-lsp/Utilities/build-script-helper.py
index bd31bec..4469cab 100755
--- a/sourcekit-lsp/Utilities/build-script-helper.py
+++ b/sourcekit-lsp/Utilities/build-script-helper.py
@@ -129,7 +129,7 @@ def get_swiftpm_options(swift_exec: str, args: argparse.Namespace) -> List[str]:
swiftpm_args += [
'-Xlinker', '-rpath', '-Xlinker', '$ORIGIN/../lib/swift/android',
# SwiftPM will otherwise try to compile against GNU strerror_r on
- '-Xlinker', '-landroid-spawn',
+ '-Xlinker', '-landroid-spawn', '--pkg-config-path', os.path.join(os.path.split(args.cross_compile_config)[0], 'lib/pkgconfig'),
# Android and fail.
'-Xswiftc', '-Xcc', '-Xswiftc', '-U_GNU_SOURCE',
]
From 355649608eb168652ff103d2a2029ba9539eea4b
From: Jake Petroules <[email protected]>
Date: Sun, 17 Nov 2024 02:21:37 -0800
Subject: [PATCH] Fix the Android build
diff --git a/swift-tools-support-core/Sources/TSCUtility/Tracing.swift b/swift-tools-support-core/Sources/TSCUtility/Tracing.swift
index b53d26ca..418d4f84 100644
--- a/swift-tools-support-core/Sources/TSCUtility/Tracing.swift
+++ b/swift-tools-support-core/Sources/TSCUtility/Tracing.swift
@@ -9,6 +9,7 @@
*/
import Foundation
+import TSCLibc
public enum TracingEventType: String, Codable, Sendable {
case asyncBegin
diff --git a/swiftpm/Sources/Basics/AsyncProcess.swift b/swiftpm/Sources/Basics/AsyncProcess.swift
--- a/swiftpm/Sources/Basics/AsyncProcess.swift
+++ b/swiftpm/Sources/Basics/AsyncProcess.swift
@@ -14,6 +14,8 @@
#if os(Windows)
import TSCLibc
+#elseif canImport(Android)
+import Android
#endif
#if os(Linux)
diff --git a/swiftpm/Sources/Basics/Cancellator.swift b/swiftpm/Sources/Basics/Cancellator.swift
--- a/swiftpm/Sources/Basics/Cancellator.swift
+++ b/swiftpm/Sources/Basics/Cancellator.swift
@@ -15,6 +15,8 @@
import class TSCBasic.Thread
#if canImport(WinSDK)
import WinSDK
+#elseif canImport(Android)
+import Android
#endif
public typealias CancellationHandler = @Sendable (DispatchTime) throws -> Void
diff --git a/swiftpm/Sources/Basics/Environment/Environment.swift b/swiftpm/Sources/Basics/Environment/Environment.swift
--- a/swiftpm/Sources/Basics/Environment/Environment.swift
+++ b/swiftpm/Sources/Basics/Environment/Environment.swift
@@ -19,8 +19,8 @@
#elseif os(Windows)
import CRT
import WinSDK
-#elseif canImport(Bionic)
-import Bionic
+#elseif canImport(Android)
+import Android
#else
import Darwin.C
#endif
diff --git a/swiftpm/Sources/Commands/SwiftRunCommand.swift b/swiftpm/Sources/Commands/SwiftRunCommand.swift
--- a/swiftpm/Sources/Commands/SwiftRunCommand.swift
+++ b/swiftpm/Sources/Commands/SwiftRunCommand.swift
@@ -9,6 +9,9 @@
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
+#if canImport(Android)
+import Android
+#endif
import ArgumentParser
import Basics
diff --git a/swiftpm/Sources/PackagePlugin/Plugin.swift b/swiftpm/Sources/PackagePlugin/Plugin.swift
--- a/swiftpm/Sources/PackagePlugin/Plugin.swift
+++ b/swiftpm/Sources/PackagePlugin/Plugin.swift
@@ -36,6 +36,8 @@
return String(decodingCString: baseAddress, as: UTF16.self)
}
}
+#elseif canImport(Android)
+import Android
#endif
//
diff --git a/swiftpm/Utilities/bootstrap b/swiftpm/Utilities/bootstrap
index 085056de..1ded1a90 100755
--- a/swiftpm/Utilities/bootstrap
+++ b/swiftpm/Utilities/bootstrap
@@ -827,6 +827,8 @@ def get_swiftpm_flags(args):
# Don't use GNU strerror_r on Android.
if '-android' in args.build_target:
build_flags.extend(["-Xswiftc", "-Xcc", "-Xswiftc", "-U_GNU_SOURCE"])
+ build_flags.extend(["-Xlinker", "-landroid-spawn"])
+ build_flags.extend(["--pkg-config-path", os.path.join(os.path.split(args.cross_compile_config)[0], 'lib/pkgconfig')])
cross_compile_hosts = args.cross_compile_hosts
if cross_compile_hosts: