forked from OSchip/llvm-project
[gn build] Update readme
Differential Revision: https://reviews.llvm.org/D56375 llvm-svn: 350632
This commit is contained in:
parent
7bb9ed140f
commit
59e373fd63
|
@ -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
|
files. Keeping the GN build files up-to-date is on the people who use the GN
|
||||||
build.
|
build.
|
||||||
|
|
||||||
*Another Warning* Right now, we're in the process of getting the GN build
|
`GN <https://gn.googlesource.com/gn/>`_ is a metabuild system. It always
|
||||||
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
|
|
||||||
creates ninja files, but it can create some IDE projects (MSVC, Xcode, ...)
|
creates ninja files, but it can create some IDE projects (MSVC, Xcode, ...)
|
||||||
which then shell out to ninja for the actual build.
|
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
|
making it possible to switch e.g. between release and debug builds in one build
|
||||||
directory.
|
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
|
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
|
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
|
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
|
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.
|
GN only works in the monorepo layout.
|
||||||
|
|
||||||
#. Obtain a `gn binary <https://gn.googlesource.com/gn/#getting-started>`_.
|
#. 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,
|
build directory, it can have any name, and you can have as many as you want,
|
||||||
each with different build settings).
|
each with different build settings).
|
||||||
|
|
||||||
#. Run e.g. `ninja -C out/gn llvm-undname` to build all prerequisites for and
|
#. Run e.g. `ninja -C out/gn check-lld` to build all prerequisites for and
|
||||||
including the Microsoft symbol name pretty printing tool llvm-undname.
|
run the LLD tests.
|
||||||
|
|
||||||
By default, you get a release build with assertions enabled that targets
|
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`,
|
the host arch. You can set various build options by editing `out/gn/args.gn`,
|
||||||
|
|
Loading…
Reference in New Issue