-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Run build commands without declared outputs #7203
Conversation
I need to add a test for this. |
@swift-ci please test |
I wonder whether we should make this change conditional on the tools-version? |
seems like a good idea |
Will this allow for |
Not sure I understand the question, how is that related to plugins? 🤔 |
I think what I'll do is make the new behavior 5.11 only but emit a warning on all earlier tools-versions. It is probably never intentional to declare a plugin usage that doesn't actually do anything and it's good to inform people that upgrading will give them the desired behavior. |
It is possible to declare build commands without outputs and the expectation is that those would still run. Currently, that is not the case, since the only condition that makes llbuild run build commands is that there's a client for the output files (either compilation or copying of resources). This change adds a phony output to any command that has no declared outputs and declares these phony outputs as input for any targets that are asking for the plugin to be applied. This will lead to these commands running unconditionally, fixing the current silent failure to run these. rdar://100415491
5a2b48e
to
5b7bbac
Compare
Rebased, added tests and made the fix conditional on the tools-version. On older tools-version, we emit a warning that should explain what's happening and that it can be resolved by upgrading the tools-version. |
@swift-ci please test |
@swift-ci please test windows |
1 similar comment
@swift-ci please test windows |
It is possible to declare build commands without outputs and the expectation is that those would still run. Currently, that is not the case, since the only condition that makes llbuild run build commands is that there's a client for the output files (either compilation or copying of resources).
This change adds a phony output to any command that has no declared outputs and declares these phony outputs as input for any targets that are asking for the plugin to be applied. This will lead to these commands running unconditionally, fixing the current silent failure to run these.
rdar://100415491