commit | cb9a6cd49d73da11a406fb8724d19d4c268df02f | [log] [tgz] |
---|---|---|
author | davg <davg@google.com> | Thu Oct 11 13:15:07 2018 -0400 |
committer | David Goldman <davg@google.com> | Thu Oct 11 13:55:16 2018 -0400 |
tree | 3a2262071e9462239e1485132983e3ac502a890a | |
parent | 1b9749585beb32b28cb50caac78899b1985f4cc5 [diff] |
Improve debugging support for (Obj)C(++) Note: This requires Bazel 0.17.1 or later since it relies on the debug_prefix_map_pwd_is_dot CROSSTOOL feature from https://github.com/bazelbuild/bazel/commit/3f46dd0f6d5a042fc28d265411a6014f666a40c1 which was first released in Bazel 0.17.1. This fixes #54 by remapping debug information (e.g. OSO stabs) to be relative to the PWD of each action, effectively making the debug information relative to the workspace root / bazel execution root. With this fix, users can re-enable sandboxing for Obj-C actions (remove --strategy= ObjcCompile=standalone) and still be able to debug Objective-C sources. Later on, Tulsi remaps `./` -> `<workspace root>` for Xcode's lldb as Xcode does not support invoking lldb from a specific directory (it launches lldb from `/`, the root directory). PiperOrigin-RevId: 216716521
Open src/Tulsi.xcodeproj, and within Xcode, build the TulsiApp.
Run the TulsiApp.
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:
bazel
invocations, some of which may affect Bazel caching. In order to maximize cache re-use when building from the command line, try using the user_build.py
script which is located in the generated xcodeproj at <xcodeproj>/.tulsi/Scripts/user_build.py
.Tulsi projects contain a few settings which control various behaviors during project generation and builds.
build
flags, customizable per compilation mode (dbg
and opt
)build
startup flags, also customizable per compilation modedbg
or opt
, no fastbuild
) used during project generation.dbg
, swap to opt
if you normally build Release builds in Xcode (i.e. profiling your app). Setting this improperly shouldn't break your project although it may potentially worsen generation and build performance.No
, swap to Yes
if your project contains Swift (even in its dependencies). Setting this improperly shouldn't break your project although it may potentially worsen generation and build performance.