-
Notifications
You must be signed in to change notification settings - Fork 10.5k
DependenciesScanner: report command-line arguments for building pcms explicitly #31922
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
5e14814
to
7f5e1d7
Compare
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 also needs to handle the other stuff that getFullCommandLine
does for -fmodule-map-file=
and -fmodule-file=
.
Actually, I guess this would be handled at a higher level. |
7f5e1d7
to
adc4660
Compare
Yeah, I think |
a784a97
to
8938095
Compare
@swift-ci please smoke test |
@swift-ci Please smoke test OS X platform |
@swift-ci Please smoke test OS X platform |
@swift-ci Please smoke test OS X platform |
8938095
to
5e47c58
Compare
@swift-ci please smoke test |
5e47c58
to
854d86f
Compare
@swift-ci please smoke test |
854d86f
to
b49d9d8
Compare
@swift-ci please smoke test |
b49d9d8
to
4bf3a46
Compare
@swift-ci please smoke test |
@swift-ci please test |
Build failed |
Build failed |
…ts emitted from dependency JSON
4bf3a46
to
cb3f278
Compare
@swift-ci please smoke test |
@swift-ci please test |
Build failed |
Build failed |
Please replace this with a full description of which this pull request does. The radar numbers are good for automation, and can be at the end, but the pull request description should be understandable to anyone who cannot follow that link. |
Good point. I've updated the PR description. |
…t instead from Swift Running shell commands using Swift in simulator tests is hard. We change the mechanism so that BuildModulesFromGraph.swift prints command line arguments and a simple python script picks these arguments and actually runs the command.
f001a00
to
2202398
Compare
@swift-ci please test |
Build failed |
Build failed |
@swift-ci please smoke test |
Clang PCM dependencies are currently implicitly built by the compiler. To allow build-system level to build these PCMs explicitly, we need to report the command line arguments from the compiler to the build system via a JSON file emitted from the dependencies scanner.
This PR combines and emits two sets of Clang compiler arguments: (1) arguments Swift used to construct ClangImporter instance, and (2) arguments collected from running Clang's fast dependency scanner. A high level build system can explicitly schedule PCM building by feeding these arguments to a Swift front-end invocation with an action kind
-emit-pcm
.For testing purposes, a Swift script is also added to build modules explicitly by using these arguments from the JSON file.
rdar://62612967
rdar://62613017