Automated rollback of commit 6989b830b6406ec84db56043ad886db665a3abd1.

*** Reason for rollback ***

This change isn't necessary.

On macOS, all compiled apps have their debug data spread out across
all generated .o files, rather than linking it directly into the
binary. The binary itself has a small debug map to point to these .o
files.

The .dSYM bundle pulls all the information from those .o files into
a common binary structure, but this is typically assumed to be
optional.

https://stackoverflow.com/a/12827463
https://stackoverflow.com/a/33307778 (to a lesser extent)

Meanwhile, this -g0 is ignored as it follows the '-g' to emit debug
symbols. Clang's response to combining these flags is to read the
'-g' first and ignore later flags related to emitting debug symbols.

Because the dSYM bundle is composed directly from the generated .o
files and the debug map, there is not a fantastic way to defer or
mitigate that cost.

Some investigation could be done of the dsymutil -minimize feature
that has been in macOS for some time, and recently upstreamed in
llvm-dsymutil (https://reviews.llvm.org/D42688), but that is not
yet a priority.

PiperOrigin-RevId: 187017593
1 file changed
tree: 68c388a423ee0607e5d6f8145f0902c3756111cd
  1. site/
  2. src/
  3. .gitignore
  4. AUTHORS
  5. CONTRIBUTING.md
  6. CONTRIBUTORS
  7. LICENSE.txt
  8. README.md
README.md

Tulsi - an Xcode Project Generator For Bazel

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.