Kudos to SPM package manager team!

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

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

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

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.

@johnburkey I tried vgorloff's toolchain, this works well, thank you very much ! :slight_smile: