Skip to content

Make the toolchains directory location configurable #326

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

cmcgee1024
Copy link
Member

Using a new environment variable SWIFTLY_TOOLCHAINS_DIR that follows a similar pattern as SWIFTLY_HOME_DIR and SWIFTLY_BIN_DIR make it possible for the user to configure the toolchain location on init in the same way.

On macOS, this level of configuration requires a different approach to extracting the toolchain whenever the installation location is anything other than the default. Use the pkgutil utility of macOS to extract the toolchain in the location specified by the user. Installing the toolchains outside of the installer in a custom location means that Xcode may not be able to pick them up easily. Make a note of that in the init screen so that users are aware.

When using the init --no-modify-profile flag the init was skiping steps like installing the latest toolchain, and emitting the notes about updating the current shell environment. Separate this logic so that the user can have these steps performed with the flag.

Using a new environment variable SWIFTLY_TOOLCHAINS_DIR that
follows a similar pattern as SWIFTLY_HOME_DIR and SWIFTLY_BIN_DIR
make it possible for the user to configure the toolchain location
on init in the same way.

On macOS, this level of configuration requires a different approach
to extracting the toolchain whenever the installation location is
anything other than the default. Use the pkgutil utility of macOS
to extract the toolchain in the location specified by the user.
Installing the toolchains outside of the installer in a custom
location means that Xcode may not be able to pick them up easily.
Make a note of that in the init screen so that users are aware.

When using the init `--no-modify-profile` flag the init was skiping
steps like installing the latest toolchain, and emitting the notes
about updating the current shell environment. Separate this logic
so that the user can have these steps performed with the flag.

* Add an E2E test for testing swiftly installation in a custom location
@cmcgee1024
Copy link
Member Author

@swift-ci test macOS

@cmcgee1024 cmcgee1024 changed the title Make the toolchains directory location configurable (#324) Make the toolchains directory location configurable Apr 18, 2025
@cmcgee1024
Copy link
Member Author

This PR is a cherry-pick of #324

@cmcgee1024 cmcgee1024 merged commit 475203c into swiftlang:release/1.0 Apr 18, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant