Allow omitting the target triple for swift sdk configure#8856
Allow omitting the target triple for swift sdk configure#8856MaxDesiatov merged 19 commits intoswiftlang:mainfrom
swift sdk configure#8856Conversation
|
Seems good, I think the reviewers will ask for a test though. Running it through self-hosted CI to make sure the patch didn't break anything. |
|
@swift-ci test self hosted |
There's no existing test support for the I'd be willing to undertake it if the reviewers want/need it. |
Yes please! |
|
OK, I'll work on implementing test support. Are there any other common use cases for |
Not at the moment, I've designed it almost exclusively to support out-of-tree sysroots like NDK 😅 |
|
I've added a Lastly, I cleaned up some of the logic for the |
|
@swift-ci test self hosted |
There was a problem hiding this comment.
Thanks! Other than formatting nits (see CONTRIBUTING.md "Creating PRs" section, p. 7) and unnecessary use of public, I think that new and existing functions and types deserve more doc comments while we're at it.
Sources/PackageModel/SwiftSDKs/SwiftSDKConfigurationStore.swift
Outdated
Show resolved
Hide resolved
Sources/PackageModel/SwiftSDKs/SwiftSDKConfigurationStore.swift
Outdated
Show resolved
Hide resolved
Sources/PackageModel/SwiftSDKs/SwiftSDKConfigurationStore.swift
Outdated
Show resolved
Hide resolved
Sources/PackageModel/SwiftSDKs/SwiftSDKConfigurationStore.swift
Outdated
Show resolved
Hide resolved
swift sdk configure
|
@swift-ci test windows |
I see that the Windows CI failed, but the link returns 404. Maybe the log expired? Can you run it again and I can take a look? |
|
@swift-ci test self hosted windows |
|
Windows error was: 11:51:14 C:\source\swiftpm\Tests\PackageModelTests\SwiftSDKBundleTests.swift:635: error: SwiftSDKBundleTests.testConfigureSDKRootPath : XCTAssertEqual failed: ("Optional("/some/sdk/root/path")") is not equal to ("Optional("\\some\\sdk\\root\\path")") - I fixed it in b155f05. Can I get another CI run? |
|
@swift-ci test self hosted windows |
|
CI passed. Is there anything else preventing this PR from getting merged? |
|
It needs a review from someone on the SwiftPM team. |
|
@swift-ci test |
|
@swift-ci test windows |
1 similar comment
|
@swift-ci test windows |
|
@marcprux would you have a moment to resolve conflicts? At least GitHub says there are some without showing specific files. |
|
@MaxDesiatov Resolved the conflict (in Sources/PackageManagerDocs/Documentation.docc/SDK/SDKConfigure.md) |
|
@swift-ci test |
|
@swift-ci test windows |
|
Is this just waiting on another review? Maybe @jakepetroules could take a look? |
|
Change looks good, but there is a merge conflict to resolve. |
|
I've updated my branch, so it should be clear to merge now. |
|
@swift-ci test |
|
@swift-ci test windows |
…#8856) You can now run `swift sdk configure --sdk-root-path /some/sdk/root sdk-id` without needing to specify the target triple The Android SDK (swiftlang/swift#80788 (comment)) needs to have its `sdkRootPath` configured to point to an external NDK sysroot. But it contains many different target triples, like `armv7-unknown-linux-androideabi33` and `x86_64-unknown-linux-android29`, all of which need to be configured to point to the same sysroot. Following on to swiftlang#8687 and swiftlang/swift-evolution#2888, this PR enables running a single command to configure the entire SDK, like so: ``` swift run swift-sdk configure --sdk-root-path ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot swift-6.1-RELEASE-android-24-0.1 ``` This will result in configurations being created for each of the target triples for the SDK ID. <details> ``` % swift run swift-sdk configure --sdk-root-path ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot swift-6.1-RELEASE-android-24-0.1 info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android25` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi33` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android26` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi35` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android31` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi29` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android32` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android34` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android27` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi25` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi26` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi24` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android33` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android35` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android29` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android32` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android25` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android24` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi30` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android26` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android33` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi32` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android35` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android34` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android31` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android28` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android27` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android24` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android30` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi28` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android28` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi27` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android30` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi34` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi31` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android29` were successfully updated: sdkRootPath. % ls ~/Library/org.swift.swiftpm/swift-sdks/configuration/ swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android24.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android25.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android26.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android27.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android28.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android29.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android30.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android31.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android32.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android33.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android34.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android35.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi24.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi25.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi26.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi27.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi28.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi29.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi30.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi31.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi32.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi33.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi34.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi35.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android24.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android25.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android26.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android27.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android28.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android29.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android30.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android31.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android32.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android33.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android34.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android35.json % cat ~/Library/org.swift.swiftpm/swift-sdks/configuration/swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android31.json { "sdkRootPath" : "/Users/marc/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot", "swiftResourcesPath" : "/Users/marc/Library/org.swift.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/lib/swift", "swiftStaticResourcesPath" : "/Users/marc/Library/org.swift.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/lib/swift_static-x86_64", "toolsetPaths" : [ "/Users/marc/Library/org.swift.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/swift-toolset.json" ] } ``` </details> In addition, this fixes swiftlang#8584, where `swift sdk configure` with a specified target triple didn't work at all, and instead would configure some random target triple for the specified SDK. Make the `targetTriple` flag for `ConfigureSwiftSDK` optional and, when nil, apply the command to all triples included in the specified SDK. Fixes swiftlang#8584 and enables configuring multiple target triples with a single `swift sdk configure` command. --------- Co-authored-by: Max Desiatov <m_desiatov@apple.com> (cherry picked from commit 69f851d)
You can now run `swift sdk configure --sdk-root-path /some/sdk/root sdk-id` without needing to specify the target triple The Android SDK (swiftlang/swift#80788 (comment)) needs to have its `sdkRootPath` configured to point to an external NDK sysroot. But it contains many different target triples, like `armv7-unknown-linux-androideabi33` and `x86_64-unknown-linux-android29`, all of which need to be configured to point to the same sysroot. Following on to #8687 and swiftlang/swift-evolution#2888, this PR enables running a single command to configure the entire SDK, like so: ``` swift run swift-sdk configure --sdk-root-path ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot swift-6.1-RELEASE-android-24-0.1 ``` This will result in configurations being created for each of the target triples for the SDK ID. <details> ``` % swift run swift-sdk configure --sdk-root-path ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot swift-6.1-RELEASE-android-24-0.1 info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android25` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi33` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android26` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi35` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android31` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi29` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android32` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android34` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android27` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi25` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi26` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi24` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android33` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android35` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android29` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android32` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android25` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android24` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi30` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android26` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android33` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi32` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android35` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android34` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android31` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android28` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android27` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android24` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android30` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi28` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `x86_64-unknown-linux-android28` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi27` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android30` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi34` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `armv7-unknown-linux-androideabi31` were successfully updated: sdkRootPath. info: These properties of Swift SDK `swift-6.1-RELEASE-android-24-0.1` for target triple `aarch64-unknown-linux-android29` were successfully updated: sdkRootPath. % ls ~/Library/org.swift.swiftpm/swift-sdks/configuration/ swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android24.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android25.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android26.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android27.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android28.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android29.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android30.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android31.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android32.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android33.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android34.json swift-6.1-RELEASE-android-24-0.1_aarch64-unknown-linux-android35.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi24.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi25.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi26.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi27.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi28.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi29.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi30.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi31.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi32.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi33.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi34.json swift-6.1-RELEASE-android-24-0.1_armv7-unknown-linux-androideabi35.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android24.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android25.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android26.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android27.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android28.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android29.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android30.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android31.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android32.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android33.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android34.json swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android35.json % cat ~/Library/org.swift.swiftpm/swift-sdks/configuration/swift-6.1-RELEASE-android-24-0.1_x86_64-unknown-linux-android31.json { "sdkRootPath" : "/Users/marc/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot", "swiftResourcesPath" : "/Users/marc/Library/org.swift.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/lib/swift", "swiftStaticResourcesPath" : "/Users/marc/Library/org.swift.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-sysroot/usr/lib/swift_static-x86_64", "toolsetPaths" : [ "/Users/marc/Library/org.swift.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/swift-toolset.json" ] } ``` </details> In addition, this fixes #8584, where `swift sdk configure` with a specified target triple didn't work at all, and instead would configure some random target triple for the specified SDK. Make the `targetTriple` flag for `ConfigureSwiftSDK` optional and, when nil, apply the command to all triples included in the specified SDK. Fixes #8584 and enables configuring multiple target triples with a single `swift sdk configure` command. --------- Co-authored-by: Max Desiatov <m_desiatov@apple.com> (cherry picked from commit 69f851d)
You can now run
swift sdk configure --sdk-root-path /some/sdk/root sdk-idwithout needing to specify the target tripleMotivation:
The Android SDK (swiftlang/swift#80788 (comment)) needs to have its
sdkRootPathconfigured to point to an external NDK sysroot. But it contains many different target triples, likearmv7-unknown-linux-androideabi33andx86_64-unknown-linux-android29, all of which need to be configured to point to the same sysroot. Following on to #8687 and swiftlang/swift-evolution#2888, this PR enables running a single command to configure the entire SDK, like so:This will result in configurations being created for each of the target triples for the SDK ID.
Details
In addition, this fixes #8584, where
swift sdk configurewith a specified target triple didn't work at all, and instead would configure some random target triple for the specified SDK.Modifications:
Make the
targetTripleflag forConfigureSwiftSDKoptional and, when nil, apply the command to all triples included in the specified SDK.Result:
Fixes #8584 and enables configuring multiple target triples with a single
swift sdk configurecommand.