-
Notifications
You must be signed in to change notification settings - Fork 139
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
Add a mechanism to provide a list of protocol names for constant value extraction. #1170
Add a mechanism to provide a list of protocol names for constant value extraction. #1170
Conversation
cbf792b
to
a3529d0
Compare
what's the general progress on this? |
I just verified this seems to be working in our project together with bazelbuild/rules_apple#2418 |
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.
were there any tests for this we could grab?
b179ff3
to
cc6abe8
Compare
@keith There were no tests upstream, but I tried my best at adding some. I also had to disable them on Linux due to the fact that we're using Swift 5.7 there, and from what I can see support for the flags we're using started in Swift 5.8. |
When testing this internally with a remote cache I'm getting Edit: removing our usage of |
…e extraction. If a module populates `const_gather_protocols` when calling `create_swift_module_context`, any target that directly depends on that module will automatically have that list of protocols passed to the compiler via `-const-gather-protocols-file`. The output group `const_values` will then contain the JSON file with the extracted constant information. This is meant to support Apple's AppIntents framework, which uses the output from `-emit-const-values-path` as an input to the AppIntent bundling tool. PiperOrigin-RevId: 588388131 (cherry picked from commit 18f2f87)
cc6abe8
to
be307b2
Compare
2bd5d82
to
aad53d8
Compare
…e extraction. If a module populates `const_gather_protocols` when calling `create_swift_module_context`, any target that directly depends on that module will automatically have that list of protocols passed to the compiler via `-const-gather-protocols-file`. The output group `const_values` will then contain the JSON file with the extracted constant information. This is meant to support Apple's AppIntents framework, which uses the output from `-emit-const-values-path` as an input to the AppIntent bundling tool. PiperOrigin-RevId: 588388131
Depends on bazelbuild/rules_swift#1170 --------- Co-authored-by: Nicholas Levin <nglevin@google.com> Co-authored-by: Patrick Balestra <me@patrickbalestra.com> Co-authored-by: Luis Padron <lpadron@squareup.com>
Depends on bazelbuild/rules_swift#1170 --------- Co-authored-by: Nicholas Levin <nglevin@google.com> Co-authored-by: Patrick Balestra <me@patrickbalestra.com> Co-authored-by: Luis Padron <lpadron@squareup.com>
It cherry-picks the rule change of bazelbuild#1170 on top of rules_swift v1.6.0. It's quired to fix app intent on Xcode 15.3+. See bazelbuild/rules_apple#2418.
This cherry-picks support for producing const values produced via the compiler flags
-emit-const-values-path
and-const-gather-protocols-file
. rules_apple will start using this feature in bazelbuild/rules_apple#2418.