-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Refactor build system support #5846
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
Conversation
@swift-ci please smoke test |
@swift-ci please smoke test macOS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great, some small comments and ideas
Looks like there's an issue to be addressed with the CMake build, probably a missing dependency:
|
Cannot repro the CMake issue in a local build 🤔 |
Ah, that's because I was on the wrong branch 🤣 |
@swift-ci please smoke test |
81d3ac5
to
6fa8141
Compare
@swift-ci please smoke test |
6fa8141
to
10af1c1
Compare
This is an initial step of unwinding the direct dependency of individual commands to a concrete build system implementation, through two major changes: - Adding a new target `DriverSupport` which contains integration with swift-driver that is independent of a concrete build system being used (today mostly `checkSupportedFrontendFlags(flags:fileSystem)` but there could be more in the future) - Adding a new `BuildSystemProvider` API which handles instantiation of a concrete build system. This will e.g. allow creating a `SwiftCommand` which doesn't depend on the `XCBuildSupport` module (which is going to help with #5807) and also provides a way to generally clean up (almost) all callsites from directly interacting with a concrete build system.
10af1c1
to
151804b
Compare
@swift-ci please smoke test |
@swift-ci please smoke test macOS |
This was broken in #5846 which accidentally used the default value instead of passing along the global option. rdar://101681661
This is an initial step of unwinding the direct dependency of individual commands to a concrete build system implementation, through two major changes:
DriverSupport
which contains integration with swift-driver that is independent of a concrete build system being used (today mostlycheckSupportedFrontendFlags(flags:fileSystem)
but there could be more in the future)BuildSystemProvider
API which handles instantiation of a concrete build system. This will e.g. allow creating aSwiftCommand
which doesn't depend on theXCBuildSupport
module (which is going to help with RefactorCommands
module #5807) and also provides a way to generally clean up (almost) all callsites from directly interacting with a concrete build system.