-
Notifications
You must be signed in to change notification settings - Fork 24.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
chore: Increase iOS script portability #44417
Conversation
Base commit: 93c079b |
I kinda suspect this breaks a lot of other assumptions in the build logic. What is use-case and how far does this actually get? |
I think the use-case can be summarized as "can run I believe this will retain existing behavior for any scenario that wasn't already erroring before this change. (Separately, it does feel surprising even on macOS that installing this as a dependency would be automatically and silently be changing the user's Xcode project settings - but that's not the point here) |
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.
Changes looks good to me.
I know that cocoapods can be used outside MacOS, but we never encountered the use case before.
@cipolleschi has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
9a2400e
to
5af62fc
Compare
Rebased on |
@cipolleschi Thanks! Some small improvements, should be good to go now I believe. PR description updated. |
be345f5
to
e8ec34c
Compare
/rebase - this comment automatically rebase on top of main |
Sorry for the delay, I have been busy with the React Conf and couldn't really work on anything else. I'm rebasing automatically on top of main, given that many tests were red in CI. |
- fix: Don't attempt xcrun if not present - fix: Default to g++ instead of gcc for CXX when Xcode not present - feat: Allow user to override CC and CXX env vars
e8ec34c
to
791160a
Compare
Thanks! I am surprised to see the errors show up. I just reverted the change which allows overriding the Xcode EDIT: Looks like that was it. |
@cipolleschi has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@cipolleschi merged this pull request in 9970480. |
This pull request was successfully merged by @legobeat in 9970480. When will my fix make it into a release? | How to file a pick request? |
- Enable `pod install` step in `yarn setup` script on all platforms - Failing installation is still only treated as actual failure on macOS - Apply `react-native` patch that resolves installation error due to attempt at patching missing Xcode - Upstream PR: facebook/react-native#44417 - Add developer `Dockerfile` which can be used locally to run routine development tasks like `yarn setup`. - Add CI job that builds docker image and tests it with metamask-mobile - In order for the new job to run, the newly used actions must be enabled in repository settings.
Summary: `pod install` and CocoaPods are actually not macOS specific. Still, the pod lifecycle scripts of `react-native` depend on macOS-only utilities and will fail on Linux. This is an attempt to make the scripts portable and make the pod install cleanly on Linux as well as macOS. ## Changelog: [INTERNAL] [FIXED] - Skip XCode patching when not run on macOS [INTERNAL] [FIXED] - Fall back to `which gcc`/`which g++` to identify C/C++ compiler when `xcrun` not available [INTERNAL] [FEAT] - Recognize CC and CXX env vars supplied to the script and prefer them over autodetection Pull Request resolved: #44417 Reviewed By: NickGerleman Differential Revision: D57055928 Pulled By: cipolleschi fbshipit-source-id: 1c49f70c52b4667abf0a215cbee52ee6aa6dd052
Summary: `pod install` and CocoaPods are actually not macOS specific. Still, the pod lifecycle scripts of `react-native` depend on macOS-only utilities and will fail on Linux. This is an attempt to make the scripts portable and make the pod install cleanly on Linux as well as macOS. ## Changelog: [INTERNAL] [FIXED] - Skip XCode patching when not run on macOS [INTERNAL] [FIXED] - Fall back to `which gcc`/`which g++` to identify C/C++ compiler when `xcrun` not available [INTERNAL] [FEAT] - Recognize CC and CXX env vars supplied to the script and prefer them over autodetection Pull Request resolved: facebook#44417 Reviewed By: NickGerleman Differential Revision: D57055928 Pulled By: cipolleschi fbshipit-source-id: 1c49f70c52b4667abf0a215cbee52ee6aa6dd052
…46358) Summary: Due to `set -e` shell option, missing `xcrun` may cause the setup script to fail on Linux. Also makes the script continue even if the glog `./configure` call does not succeed. ### Related - Follow-up to #44417 ## Changelog: - [Internal] [Fixed] - react-native: make missing xcrun not throw in `ios-configure-glog.sh` - [Internal] [Fixed] - react-native: accept failing glog ./configure in `ios-configure-glog.sh` Pull Request resolved: #46358 Reviewed By: cortinico Differential Revision: D62851737 Pulled By: cipolleschi fbshipit-source-id: 3ed76a81b6f428a1697c364698a0dfdd3bbb74f2
Summary:
pod install
and CocoaPods are actually not macOS specific.Still, the pod lifecycle scripts of
react-native
depend on macOS-only utilities and will fail on Linux.This is an attempt to make the scripts portable and make the pod install cleanly on Linux as well as macOS.
Changelog:
Test Plan: