Skip to content
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

Fix infoplist exclusivity / config inhertiance #618

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jerrymarino
Copy link
Contributor

The original version required that infoplists_by_build_setting and xcconfig_by_build_setting are mutually exclusive which was problematic for people who had different condtions. To remidate this problem, let build configuration pick one: move xcconfig_by_build_setting into a select() statement as-is so it is selected by configuration

Finally remove the "select" statement inheritance. From an API perspectie a select isn't inherited so we will only inherit from xcconfig. This is a breaking change if you relied on the previous behavior ( which was only a couple days ago )

The original version required that infoplists_by_build_setting and
xcconfig_by_build_setting are mutually exclusive which was problematic
for people who had different condtions. To remidate this problem, let
build configuration pick _one_: move xcconfig_by_build_setting into a
select() statement as-is so it is selected by configuration

Finally remove the "select" statement inheritance. From an API
perspectie a select isn't inherited so we will only inherit from
`xcconfig`. This is a breaking change if you relied on the previous
behavior ( which was only a couple days ago )
@jerrymarino
Copy link
Contributor Author

cc @luispadron this addresses a few followups from the recent PR. The one change we might need to fix for your use case is the //conditions:default inheritance

rules/plists.bzl Show resolved Hide resolved
Comment on lines +44 to +45
if len(infoplists_by_build_setting.keys()) == 0:
infoplists_by_build_setting["//conditions:default"] = default_infoplists
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess the confusing part is this differs from how xcconfig and xcconfig_by_build_setting work.

xcconfig gets merged into all the different ones but this seems to ignore infoplists entirely if infoplists_by_build_setting is set

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we dont want users to use them both at the same time (cash doesn't use infoplists_by_build_setting at all) should we just fail instead?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants