@@ -32,15 +32,15 @@ To cross-compile swift-inspect for Android on Windows, some additional parameter
32
32
set ANDROID_ARCH=aarch64
33
33
set ANDROID_API_LEVEL=29
34
34
set ANDROID_NDK_ROOT=C:\Android\android-sdk\ndk\26.3.11579264
35
- set SWIFT_ANDROID_SDK_ROOT =%LocalAppData%\Programs\Swift\Platforms\0.0.0\Android.platform\Developer\SDKs\Android.sdk
35
+ set SDKROOT_ANDROID =%LocalAppData%\Programs\Swift\Platforms\0.0.0\Android.platform\Developer\SDKs\Android.sdk
36
36
swift build --triple %ANDROID_ARCH%-unknown-linux-android%ANDROID_API_LEVEL% ^
37
37
--sdk %ANDROID_NDK_ROOT%\toolchains\llvm\prebuilt\windows-x86_64\sysroot ^
38
- -Xswiftc -sdk -Xswiftc %SWIFT_ANDROID_SDK_ROOT % ^
38
+ -Xswiftc -sdk -Xswiftc %SDKROOT_ANDROID % ^
39
39
-Xswiftc -sysroot -Xswiftc %ANDROID_NDK_ROOT%\toolchains\llvm\prebuilt\windows-x86_64\sysroot ^
40
- -Xswiftc -I -Xswiftc %SWIFT_ANDROID_SDK_ROOT %\usr\include ^
40
+ -Xswiftc -I -Xswiftc %SDKROOT_ANDROID %\usr\include ^
41
41
-Xlinker -L%ANDROID_NDK_ROOT%\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\17.0.2\lib\linux\%ANDROID_ARCH% ^
42
- -Xcc -I%SWIFT_ANDROID_SDK_ROOT %\usr\include\swift\SwiftRemoteMirror ^
43
- -Xlinker %SWIFT_ANDROID_SDK_ROOT %\usr\lib\swift\android\%ANDROID_ARCH%\libswiftRemoteMirror.so
42
+ -Xcc -I%SDKROOT_ANDROID %\usr\include\swift\SwiftRemoteMirror ^
43
+ -Xlinker %SDKROOT_ANDROID %\usr\lib\swift\android\%ANDROID_ARCH%\libswiftRemoteMirror.so
44
44
~~~
45
45
46
46
#### CMake
@@ -57,6 +57,25 @@ In order to build on Linux with CMake, some additional parameters must be passed
57
57
cmake -B out -G Ninja -S . -D ArgumentParser_DIR=... -D CMAKE_Swift_FLAGS="-Xcc -I$(git rev-parse --show-toplevel)/include/swift/SwiftRemoteMirror"
58
58
~~~
59
59
60
+ In order to build for Android with CMake on Windows, some additiona parameters must be passed to the build tool to locate the necessary Swift modules.
61
+
62
+ ~~~ cmd
63
+ set ANDROID_ARCH=aarch64
64
+ set ANDROID_API_LEVEL=29
65
+ set ANDROID_NDK_ROOT=C:\Android\android-sdk\ndk\26.3.11579264
66
+ set ANDROID_ARCH_ABI=arm64-v8a
67
+ set SDKROOT_ANDROID=%LocalAppData%\Programs\Swift\Platforms\0.0.0\Android.platform\Developer\SDKs\Android.sdk
68
+ cmake -B build -S . -G Ninja ^
69
+ -D CMAKE_BUILD_WITH_INSTALL_RPATH=YES ^
70
+ -D CMAKE_SYSTEM_NAME=Android ^
71
+ -D CMAKE_ANDROID_ARCH_ABI=%ANDROID_ARCH_ABI% ^
72
+ -D CMAKE_SYSTEM_VERSION=%ANDROID_API_LEVEL% ^
73
+ -D CMAKE_Swift_COMPILER_TARGET=%ANDROID_ARCH%-unknown-linux-android%ANDROID_API_LEVEL% ^
74
+ -D CMAKE_Swift_FLAGS="-sdk %SDKROOT_ANDROID% -L%ANDROID_NDK_ROOT%\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\17.0.2\lib\linux\%ANDROID_ARCH% -Xcc -I%SDKROOT_ANDROID%\usr\include -I%SDKROOT_ANDROID%\usr\include\swift\SwiftRemoteMirror" ^
75
+ -D ArgumentParser_DIR=...
76
+ cmake --build build
77
+ ~~~
78
+
60
79
Building with CMake requires a local copy of [ swift-argument-parser] ( https://github.com/apple/swift-argument-parser ) built with CMake.
61
80
The ` ArumentParser_DIR= ` definition must refer to the ` cmake/modules ` sub-directory of the swift-argument-parser build output directory.
62
81
0 commit comments