update chromium clang docs
- remove references to gyp
- remove line implying that lld only works on win (it works on linux too)
BUG=
Review-Url: https://codereview.chromium.org/2536093004
Cr-Commit-Position: refs/heads/master@{#435098}
diff --git a/docs/clang.md b/docs/clang.md
index a63ecdb..0661253 100644
--- a/docs/clang.md
+++ b/docs/clang.md
@@ -26,7 +26,7 @@
Run `gn args` and add `is_clang = true` to your args.gn file.
-Build: `ninja -C out/Debug chrome`
+Build: `ninja -C out/gn chrome`
## Reverting to gcc on linux
@@ -57,19 +57,6 @@
./test.py ../../../../third_party/llvm-build/Release+Asserts/bin/clang \
../../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so)
-These instructions are for GYP which no longer works. Something similar needs
-to be set up for the GN build if you want to do this. For reference, here are
-the old instructions: To run [other plugins](writing_clang_plugins.md), add
-these to your `GYP_DEFINES`:
-
-* `clang_load`: Absolute path to a dynamic library containing your plugin
-* `clang_add_plugin`: tells clang to run a specific PluginASTAction
-
-So for example, you could use the plugin in this directory with:
-
-* `GYP_DEFINES='clang=1 clang_load=/path/to/libFindBadConstructs.so
- clang_add_plugin=find-bad-constructs' gclient runhooks`
-
## Using the clang static analyzer
See [clang_static_analyzer.md](clang_static_analyzer.md).
@@ -83,10 +70,10 @@
how things are currently looking:
http://build.chromium.org/p/chromium.fyi/console?category=win%20clang
-``` shell
+```shell
python tools\clang\scripts\update.py
# run `gn args` and add `is_clang = true` to your args.gn, then...
-ninja -C out\Debug chrome
+ninja -C out\gn chrome
```
The `update.py` script only needs to be run once per checkout. Clang will be
@@ -102,35 +89,30 @@
## Using a custom clang binary
-These instructions are for GYP which no longer works. Something similar needs
-to be set up for the GN build if you want to do this. For reference, here are
-the old instructions:
-
-If you want to try building Chromium with your own clang binary that you've
-already built, set `make_clang_dir` to the directory containing `bin/clang`
-(i.e. the directory you ran cmake in, or your `Release+Asserts` folder if you
-use the configure/make build). You also need to disable chromium's clang plugin
-by setting `clang_use_chrome_plugins=0`, as it likely won't load in your custom
-clang binary.
+Set `clang_base_path` in your args.gn to the llvm build directory containing
+`bin/clang` (i.e. the directory you ran cmake). This [must][1] be an absolute
+path. You also need to disable chromium's clang plugin.
Here's an example that also disables debug info and enables the component build
(both not strictly necessary, but they will speed up your build):
-```shell
-GYP_DEFINES="clang=1 fastbuild=1 component=shared_library \
-clang_use_chrome_plugins=0 make_clang_dir=$HOME/src/llvm-build" \
-build/gyp_chromium
+```
+clang_base_path = getenv("HOME") + "/src/llvm-build"
+clang_use_chrome_plugins = false
+is_debug = false
+symbol_level = 1
+is_component_build = true
+is_clang = true # Implicitly set on Mac, Linux, iOS; needed on Win and Android.
```
-You can then run `head out/Release/build.ninja` and check that the first to
+You can then run `head out/gn/toolchain.ninja` and check that the first to
lines set `cc` and `cxx` to your clang binary. If things look good, run `ninja
--C out/Release` to build.
+-C out/gn` to build.
If your clang revision is very different from the one currently used in chromium
* Check `tools/clang/scripts/update.py` to find chromium's clang revision
-* You might have to tweak warning flags. Or you could set `werror=` in the
- line above to disable warnings as errors (but this only works on Linux).
+* You might have to tweak warning flags.
## Using LLD
@@ -141,5 +123,5 @@
MSVC's link.exe as of this writing. LLD does not yet support generating PDB
files, which makes it hard to debug Chrome while using LLD.
-Set `use_lld = true` in args.gn. Currently this configuration is only supported
on Windows.
+Set `use_lld = true` in args.gn.