@@ -224,6 +224,11 @@ function run() {
224224}
225225
226226for arch in $archs ; do
227+ # enable short-circuiting the individual builds
228+ if [[ ! -z " $SKIP_ARCH_BUILD " ]]; then
229+ continue
230+ fi
231+
227232 case $arch in
228233 armv7) target_host=" arm-linux-androideabi" ; compiler_target_host=" armv7a-linux-androideabi$android_api " ; android_abi=" armeabi-v7a" ;;
229234 aarch64) target_host=" aarch64-linux-android" ; compiler_target_host=" $target_host$android_api " ; android_abi=" arm64-v8a" ;;
@@ -366,3 +371,100 @@ for arch in $archs; do
366371 header " Completed build for $arch in $sdk_root "
367372done
368373
374+ # Now generate the bundle
375+ header " Bundling SDK"
376+
377+ sdk_name=swift-${swift_version} _static-linux-${static_linux_sdk_version}
378+ bundle=" ${sdk_name} .artifactbundle"
379+
380+ rm -rf " ${build_dir} /$bundle "
381+ mkdir -p " ${build_dir} /$bundle /$sdk_name /swift-linux-musl"
382+
383+ quiet_pushd ${build_dir} /$bundle
384+
385+ # First the info.json, for SwiftPM
386+ cat > info.json << EOF
387+ {
388+ "schemaVersion": "1.0",
389+ "artifacts": {
390+ "$sdk_name ": {
391+ "variants": [
392+ {
393+ "path": "$sdk_name /swift-linux-musl"
394+ }
395+ ],
396+ "version": "0.0.1",
397+ "type": "swiftSDK"
398+ }
399+ }
400+ }
401+ EOF
402+
403+
404+ cd " $sdk_name /swift-linux-musl"
405+
406+ cat > swift-sdk.json << EOF
407+ {
408+ "schemaVersion": "4.0",
409+ "targetTriples": {
410+ EOF
411+
412+ first=true
413+ for arch in $archs ; do
414+ if [[ " $first " == " true" ]]; then
415+ first=false
416+ else
417+ cat >> swift-sdk.json << EOF
418+ },
419+ EOF
420+ fi
421+ cat >> swift-sdk.json << EOF
422+ "${arch} -swift-linux-musl": {
423+ "toolsetPaths": [
424+ "toolset.json"
425+ ],
426+ "sdkRootPath": "musl-${musl_version} .sdk/${arch} ",
427+ "swiftResourcesPath": "musl-${musl_version} .sdk/${arch} /usr/lib/swift_static",
428+ "swiftStaticResourcesPath": "musl-${musl_version} .sdk/${arch} /usr/lib/swift_static"
429+ EOF
430+ done
431+
432+ cat >> swift-sdk.json << EOF
433+ }
434+ }
435+ }
436+ EOF
437+
438+ mkdir " musl-${musl_version} .sdk"
439+ quiet_pushd " musl-${musl_version} .sdk"
440+ cp -R ${build_dir} /sdk_root/* .
441+ quiet_popd
442+
443+ mkdir -p swift.xctoolchain/usr/bin
444+
445+ cat > toolset.json << EOF
446+ {
447+ "rootPath": "swift.xctoolchain/usr/bin",
448+ "swiftCompiler" : {
449+ "extraCLIOptions" : [
450+ "-static-executable",
451+ "-static-stdlib"
452+ ]
453+ },
454+ "schemaVersion": "1.0"
455+ }
456+ EOF
457+
458+ quiet_popd
459+
460+ # tree ${build_dir}/$bundle
461+ # tree $products_dir
462+
463+ # header "Outputting compressed bundle"
464+
465+ # quiet_pushd "${build_dir}"
466+ # mkdir -p "${products_dir}"
467+ # tar cvzf "${products_dir}/${bundle}.tar.gz" "${bundle}"
468+ # quiet_popd
469+
470+
0 commit comments