johnburkey
(john burkey)
1
Wanted to say thanks in a public way, we are building massive C++ libraries, and massive swift libraries, and NIO, AWS libraries, (our libraries are 150 megabytes of binaries) And they build seamlessly for all Apple platforms, Linux (Ubuntu, AWS2, etc.), Lambda, Android, and Docker. SPM really does work, and the combination of its auto versioning and downloading / provisioning, and its deployment to so many platforms seamlessly is unique, powerful, and very valuable.
With several of these libraries, we removed CMake, and the byzantine makes that were there, and replaced them with clean SPM builds.
THANK YOU
37 Likes
mman
(Martin Man)
2
Completely agree, I rely on SPM under Linux and Docker for couple years in production already and addition of support in Xcode completes the picture. Although there are still quirks, the direction is clear.
Great job everybody involved,
Martin
5 Likes
ion
3
Wow! i didn't even know it was possible this is amazing!!! Thanks to the team :)
@johnburkey I actually have to make some code run on Android, I am struggling with the different options available, I am a bit lost. Since you seem to have make it worked via SPM, if this is possible for you, would you explain to me briefly how to achieve that please ?
Thanks :)
1 Like
johnburkey
(john burkey)
4
Sure! (1), grab vgorloff's toolchain:
(2) Execute a command like this in your SPM build project dir.
.../swift-android-toolchain/usr/bin/swift-build-aarch64-linux-android --destination android.json -j 16
(3) Use something like this as your destination json.
more ../androidlibs/android.json
{
"version": 1,
"sdk": "/Users/johnburkey/brightenTools/swift-android-toolchain",
"toolchain-bin-dir": "/Users/johnburkey/brightenTools/swift-android-toolchain",
"target": "aarch64-unknown-linux-android",
"dynamic-library-extension": "so",
"extra-cc-flags": [
"-fPIC",
"-mcpu=cortex-a57"
],
"extra-swiftc-flags": [
"-use-ld=gold"
],
"extra-cpp-flags": ["-lstdc++"]
}
That's how we do it. The swift community has done a ton of work to make this easy for all of us.
ion
5
@johnburkey I tried vgorloff's toolchain, this works well, thank you very much ! 