[gn build] Update readme

Differential Revision: https://reviews.llvm.org/D56375

llvm-svn: 350632
This commit is contained in:
Nico Weber 2019-01-08 15:19:00 +00:00
parent 7bb9ed140f
commit 59e373fd63
1 changed files with 3 additions and 15 deletions

View File

@ -18,11 +18,7 @@ to update GN build files. Reviewers should not ask authors to update GN build
files. Keeping the GN build files up-to-date is on the people who use the GN
build.
*Another Warning* Right now, we're in the process of getting the GN build
checked in. As of this writing, it's not yet functional at all. Check back
in a few weeks!
`GN <https://gn.googlesource.com/gn/>`_ is another metabuild system. It always
`GN <https://gn.googlesource.com/gn/>`_ is a metabuild system. It always
creates ninja files, but it can create some IDE projects (MSVC, Xcode, ...)
which then shell out to ninja for the actual build.
@ -32,11 +28,6 @@ a 2000x difference), and since it's so fast it doesn't aggressively cache,
making it possible to switch e.g. between release and debug builds in one build
directory.
It is arguable easier to configure than the CMake build, and has native support
for building with multiple toolchains in one build directory. The build
description is declarative-ish, allowing GN to print it in a json format that
can fairly easily be converted to other metabuild system inputs.
The main motivation behind the GN build is that some people find it more
convenient for day-to-day hacking on LLVM than CMake. Distribution, building
just parts of LLVM, and embedding the LLVM GN build from other builds are a
@ -49,9 +40,6 @@ This is a `good overview of GN <https://docs.google.com/presentation/d/15Zwb53Jc
Quick start
===========
*Warning* Right now, we're in the process of getting the GN build checked in.
As of this writing, it's not yet functional at all.
GN only works in the monorepo layout.
#. Obtain a `gn binary <https://gn.googlesource.com/gn/#getting-started>`_.
@ -61,8 +49,8 @@ GN only works in the monorepo layout.
build directory, it can have any name, and you can have as many as you want,
each with different build settings).
#. Run e.g. `ninja -C out/gn llvm-undname` to build all prerequisites for and
including the Microsoft symbol name pretty printing tool llvm-undname.
#. Run e.g. `ninja -C out/gn check-lld` to build all prerequisites for and
run the LLD tests.
By default, you get a release build with assertions enabled that targets
the host arch. You can set various build options by editing `out/gn/args.gn`,