-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
[Infra] Only compile core extension headers once #13993
Conversation
Generated by 🚫 Danger |
Are the podspecs published at |
No, is there a way I can do that locally? Or should I stage these to SpecsDev? |
I'm not aware of how to do it locally. Staging to SpecsDev would be a good way to test |
Hmm, I actually don't think SpecsDev is that helpful because the spec points the same source that staging does. |
Should be fine to move the tags to the tip of your branch temporarily and use SpecsStaging |
Or CocoaPods-11.5.0 should be sufficient |
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.
LGTM
This reverts commit ab29943.
Merged and moving tags to get coverage in the nightlies. |
Confirmed the repro in #13756 now successfully builds docs when pointing at SpecsStaging. |
Nice solution, @ncooke3! |
A custom module map was too difficult. I couldn't get CocoaPods to respect the custom module map and stopped when I started to spin on things. I switched to guarding the headers against being included twice. It seems promising so far. I also tried with using
#pragma once
but that didn't work because (my guess) is that the problem is not that the same header is being included twice, it's that two different headers with the same content are both being included (once in FirebaseCore and once in FirebaseCoreExtension).Test cases and their results below:
FirebaseCore
spec butFirebaseCoreExtension
@ main. The framework target builds but the docs target does not build because of theFirebaseCoreExtension
@ main does not have guarded headers.FirebaseCore
spec AND updatedFirebaseCoreExtension
spec. The framework target builds AND the docs target builds.FirebaseCore
(the floating case). The framework target builds but the docs target does not build because of using theFirebaseCoreExtension
@ main.FirebaseCore
(the floating case). In this example, it floats to pick up FirebaseCoreExtension as well. The framework target builds and the docs target builds.