@@ -101,7 +101,7 @@ function declare_package
101
101
packages+=(${name} )
102
102
}
103
103
104
- declare_package android_sdk \
104
+ declare_package swift_android_sdk \
105
105
" Swift SDK for Android" \
106
106
" Apache-2.0" " https://swift.org/install"
107
107
declare_package swift " swift" " Apache-2.0" " https://swift.org"
@@ -359,7 +359,6 @@ for arch in $archs; do
359
359
groupend
360
360
361
361
groupstart " Building libcurl for ${compiler_target_host} "
362
- quiet_pushd ${swift_source_dir} /curl
363
362
run cmake \
364
363
-G Ninja \
365
364
-S ${swift_source_dir} /curl \
@@ -393,9 +392,8 @@ for arch in $archs; do
393
392
394
393
header " Installing libcurl for $arch "
395
394
quiet_pushd ${build_dir} /$arch /curl
396
- run ninja -j $parallel_jobs install
395
+ run cmake -- install ${build_dir} / ${arch} /curl
397
396
quiet_popd
398
- quiet_popd
399
397
groupend
400
398
401
399
groupstart " Building Android SDK for ${compiler_target_host} "
@@ -505,6 +503,96 @@ cat > info.json <<EOF
505
503
}
506
504
EOF
507
505
506
+ spdx_uuid=$( uuidgen)
507
+ spdx_doc_uuid=$( uuidgen)
508
+ spdx_timestamp=$( date -Iseconds)
509
+
510
+ # Now generate SPDX data
511
+ cat > sbom.spdx.json << EOF
512
+ {
513
+ "SPDXID": "SPDXRef-DOCUMENT",
514
+ "name": "SBOM-SPDX-${spdx_uuid} ",
515
+ "spdxVersion": "SPDX-2.3",
516
+ "creationInfo": {
517
+ "created": "${spdx_timestamp} ",
518
+ "creators": [
519
+ "Organization: Apple, Inc."
520
+ ]
521
+ },
522
+ "dataLicense": "Apache-2.0",
523
+ "documentNamespace": "urn:uuid:${spdx_doc_uuid} ",
524
+ "documentDescribes": [
525
+ "SPDXRef-Package-swift-android-sdk"
526
+ ],
527
+ "packages": [
528
+ EOF
529
+
530
+ first=true
531
+ for package in ${packages[@]} ; do
532
+ if [[ " $first " == " true" ]]; then
533
+ first=false
534
+ else
535
+ cat >> sbom.spdx.json << EOF
536
+ },
537
+ EOF
538
+ fi
539
+
540
+ snake=${package} _snake; snake=${! snake}
541
+ version=${package} _version; version=${! version}
542
+ name=${package} _name; name=${! name}
543
+ license=${package} _license; license=${! license}
544
+ url=${package} _url; url=${! url}
545
+
546
+ cat >> sbom.spdx.json << EOF
547
+ {
548
+ "SPDXID": "SPDXRef-Package-${snake} ",
549
+ "name": "${name} ",
550
+ "versionInfo": "${version} ",
551
+ "filesAnalyzed": false,
552
+ "licenseDeclared": "${license} ",
553
+ "licenseConcluded": "${license} ",
554
+ "downloadLocation": "${url} ",
555
+ "copyrightText": "NOASSERTION",
556
+ "checksums": []
557
+ EOF
558
+ done
559
+
560
+ cat >> sbom.spdx.json << EOF
561
+ }
562
+ ],
563
+ "relationships": [
564
+ EOF
565
+
566
+ first=true
567
+ for package in ${packages[@]} ; do
568
+ if [[ " $package " == " swift_android_sdk" ]]; then
569
+ continue
570
+ fi
571
+
572
+ if [[ " $first " == " true" ]]; then
573
+ first=false
574
+ else
575
+ cat >> sbom.spdx.json << EOF
576
+ },
577
+ EOF
578
+ fi
579
+
580
+ snake=${package} _snake; snake=${! snake}
581
+
582
+ cat >> sbom.spdx.json << EOF
583
+ {
584
+ "spdxElementId": "SPDXRef-Package-swift-android-sdk",
585
+ "relationshipType": "GENERATED_FROM",
586
+ "relatedSpdxElement": "SPDXRef-Package-${snake} "
587
+ EOF
588
+ done
589
+
590
+ cat >> sbom.spdx.json << EOF
591
+ }
592
+ ]
593
+ }
594
+ EOF
595
+
508
596
mkdir -p $sdk_base
509
597
quiet_pushd $sdk_base
510
598
0 commit comments