blob: bdb8f607a82a8fd2212d9cda265cf69e926fdd8b [file] [view]
# Tulsi - an Xcode Project Generator For Bazel
<span style="background-color:OldLace; padding:10px">
tulsi - /ˈto͝olsē/ A kind of basil that is venerated by Hindus as a sacred
plant.
</span>
## Building and installing
1. Open src/Tulsi.xcodeproj, and within Xcode, build the **TulsiApp**.
2. Run the **TulsiApp**.
## Notes
Tulsi-generated Xcode projects use Bazel to build, **not** Xcode via xcbuild. This means
that many common components of an Xcode project are handled differently than you
may be used to. Notable differences:
* **BUILD files are the source of truth**; most changes made to your Xcode project
won't affect the build.
* Adding new sources to the Xcode project won't include them in your app;
they must be added to BUILD files.
* Changes made to your BUILD files, such as adding new library
dependencies, are incorporated automatically when building your
generated project. The only time you need to re-run Tulsi is if you want
to add additional build targets or have new source files show up in
Xcode for editing.
* The Info.plist file is governed entirely by BUILD rules in Bazel and is
not displayed in the Xcode UI.
* Changes to compilation flags (i.e. -DHELLO) should be made in the BUILD
files in order to affect the build; changes made to compilation settings
in the Xcode UI will only affect indexing. You may want to regenerate
your project using Tulsi after modifying compilation flags.