-
Notifications
You must be signed in to change notification settings - Fork 49
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
First pass at Bazel for iOS developers and outline #235
Conversation
This document is an introduction to Bazel for iOS developers. Putting this up in the current state to get feedback and suggestions from the community
d194162
to
7f82b3f
Compare
Additionally a few phrasing tweaks
Additionally fix misc typos
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.
This is a pretty helpful guide, I would get a handful of product engineers less familiar with Bazel to read through and see if it makes sense or if clarifications are needed.
It could be cool at the end to demonstrate how to use things like bazel query
or writing a simple custom rule to show off the advantages
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.
I suggested some grammar and typo fixes, but overall this is fantastic! I think there's an opportunity to beef up the "Fixing common Bazel errors" section with a few more examples.
Docs/BazelForiOSDevelopers.md
Outdated
|
||
### Generated Xcode projects | ||
|
||
In an Xcode world, folks checked in a project which contains an listing of |
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.
In an Xcode world, folks checked in a project which contains an listing of | |
In an Xcode world, folks checked in a project which contains a listing of |
|
||
Generators like XCHammer and Tulsi take care of integrating Bazel into the IDE. | ||
Bazel builds are invoked a shell script build phase from the IDE. Basically, | ||
Xcode shells out to Bazel to produce the application, and then Xcode picks up |
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.
Does Xcode pick it up directly from derived data path? I guess it's worth mentioning that Tulsi manages that at least, otherwise one may think that it works out of the box with just a run script phase that builds the app.
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.
@BalestraPatrick This is a really good point, simply put, yes we currently rsync artifacts into the built products in derived data for xcode to pick it up.
For our internal simulator dev builds, there's a much more performant code path than what Xcode can do. We have a dynamic library architecture and integration where dyld3 loads dylibs residing in bazel-out
via an rpath written into the binary. This is probably too in-depth and should be in a performance optimization segment along with the rules that allow this.
Co-authored-by: John Szumski <[email protected]>
Co-authored-by: John Szumski <[email protected]>
Thanks for the suggestions - adding fixes from @jszumski Co-authored-by: John Szumski <[email protected]> Co-authored-by: Patrick Balestra <[email protected]>
Co-authored-by: John Szumski <[email protected]>
Co-authored-by: John Szumski <[email protected]>
Thank you all kindly for your contributions and edits to this document. So many thanks to @rahul-malik and @garrettmoon and @jszumski @BalestraPatrick for all the edits! |
This document is an introduction to Bazel for iOS developers.
Putting this up in the current state to get feedback and suggestions
from the community