Skip to content

Add build prebuilts support for any version of swift-syntax. #8994

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
merged 1 commit into from
Aug 11, 2025

Conversation

dschaefer2
Copy link
Member

@dschaefer2 dschaefer2 commented Aug 5, 2025

Removes the hardcoding of the contents of the prebuilt libraries.

Adds a --version argument to specify which versions of swift-syntax you want to build for. You can have multiple of these. We add a sample build.sh script to the folder to show an example, including finding the most recent prerelease of 602.

Also removes the hardcoding of the list of products that go into the library. Instead we ask the package for its list of library products and add them all.

Finally, removes the header files since SwiftPM now hooks up the include paths to the CModules from the source in the checkouts.

Removes the hardcoding of the contents of the prebuilt libraries.
Adds a --version argument to specify which versions of swift-syntax
you want to build for. You can have multiple of these. Also removes
the hardcoding of the list of products that go into the library.
Instead we ask the package for it's list of library products and
add them all.
@dschaefer2
Copy link
Member Author

@swift-ci please test

let buildDir = scratchDir.appending("release")
let srcModulesDir = buildDir.appending("Modules")
let prebuiltDir = stageDir.appending(repo.url.lastPathComponent)
try await shell("git clone https://github.com/swiftlang/swift-syntax.git", cwd: srcDir)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not new code but we should be avoiding shell where possible in order to avoid injections, especially where the command is not a string literal

@dschaefer2
Copy link
Member Author

@swift-ci please test windows

@dschaefer2
Copy link
Member Author

Waiting to do a little more testing on all the platforms before pushing this.

@dschaefer2 dschaefer2 merged commit b6a3d95 into swiftlang:main Aug 11, 2025
6 checks passed
dschaefer2 added a commit to dschaefer2/swift-package-manager that referenced this pull request Aug 11, 2025
…ng#8994)

Removes the hardcoding of the contents of the prebuilt libraries.

Adds a --version argument to specify which versions of swift-syntax you
want to build for. You can have multiple of these. We add a sample
build.sh script to the folder to show an example, including finding the
most recent prerelease of 602.

Also removes the hardcoding of the list of products that go into the
library. Instead we ask the package for its list of library products and
add them all.

Finally, removes the header files since SwiftPM now hooks up the include
paths to the CModules from the source in the checkouts.
dschaefer2 added a commit that referenced this pull request Aug 12, 2025
…9011)

Removes the hardcoding of the contents of the prebuilt libraries.

Adds a --version argument to specify which versions of swift-syntax you
want to build for. You can have multiple of these. We add a sample
build.sh script to the folder to show an example, including finding the
most recent prerelease of 602.

Also removes the hardcoding of the list of products that go into the
library. Instead we ask the package for its list of library products and
add them all.

Finally, removes the header files since SwiftPM now hooks up the include
paths to the CModules from the source in the checkouts.

This is needed in 6.2 to support prebuilts generated with that version
of the toolchain. I have tested this on all three host platforms
including all Linux distros with both architectures and swift-syntax
600, 601, and the latest prerelease of 602
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.

2 participants