-
Notifications
You must be signed in to change notification settings - Fork 216
Propagate Explicit Module Build command arguments to compile jobs. #113
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
da04575 to
8dadcc7
Compare
|
|
||
| // If asked, add jobs to precompile module dependencies | ||
| if parsedOptions.contains(.driverExplicitModuleBuild) || | ||
| parsedOptions.contains(.driverPrintModuleDependenciesJobs) { |
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.
driverPrintModuleDependenciesJobs makes this messy, but I plan on removing it in a followup and making tweaks to -print-driver-jobs to make debugging this a bit easier.
|
@swift-ci test |
DougGregor
left a comment
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.
This is shaping up really nicely!
Sources/SwiftDriver/Dependency Scanning/InterModuleDependencyGraph.swift
Outdated
Show resolved
Hide resolved
Sources/SwiftDriver/Dependency Scanning/ModuleDependencyBuildGeneration.swift
Outdated
Show resolved
Hide resolved
Sources/SwiftDriver/Dependency Scanning/ModuleDependencyBuildGeneration.swift
Outdated
Show resolved
Hide resolved
Sources/SwiftDriver/Dependency Scanning/ModuleDependencyBuildGeneration.swift
Show resolved
Hide resolved
|
@swift-ci test |
|
@swift-ci please test |
Sources/SwiftDriver/Dependency Scanning/InterModuleDependencyGraph.swift
Outdated
Show resolved
Hide resolved
|
@swift-ci test |
2 similar comments
|
@swift-ci test |
|
@swift-ci test |
|
@swift-ci please test |
1 similar comment
|
@swift-ci please test |
|
The test added in this PR is failing in CI because it needs to invoke the compiler (dependency scanner) and I suspect that this is due to the way the driver currently does path resolution when looking for the compiler executable.
Because CI points the driver to the latest toolchain with @DougGregor , we can make this work by doing either:
|
I think we should do (1), because we might want to fiddle with path resolution order for other reasons, but Thank you! |
|
@swift-ci please test |
37c4725 to
4364bbb
Compare
Sources/SwiftDriver/Dependency Scanning/ModuleDependencyBuildGeneration.swift
Outdated
Show resolved
Hide resolved
|
@swift-ci please test |
2 similar comments
|
@swift-ci please test |
|
@swift-ci please test |
|
@swift-ci please test |
…e dependencies discovered by the fast dependency scanner.
…monFrontendOptions
- Explicitly import `Swift` in swiftinterface files - Use quote header file imports instead of <>
56cc88e to
5092bdb
Compare
|
@swift-ci please test |
This PR adds the compile command argument interface for Explicit Module Builds, as specified in: swiftlang/swift#32125
-disable-implicit-swift-modulesand-Xcc -Xclang -Xcc -fno-implicit-modulesare passed to all compile jobs to prevent the frontend from building any modules implicitly and diagnose if they have to.-Xcc -Xclang -Xcc -fmodule-map-file=and-Xcc -Xclang -Xcc -fmodule-file=and-swift-module-file=.-experimental-explicit-module-buildoption to request that the driver must attempt to perform a full explicit-module-build compile.For now, I include a test that verifies that the commands are generated as expected w.r.t. their dependencies. Once the frontend puzzle piece is landed, we should be close to getting a full end-to-end test.
This PR subsumes #112.