See "GN build roundtable summary; adding GN build files to the repo" on llvm-dev and cfe-dev for discussion.
In particular, this build is completely unsupported. People adding new files to LLVM are not expected to update the GN build files, and reviewers are not supposed to request the gn build files to be updated.
This adds just enough to be able to build llvm/lib/Demangle. It requires using a monorepo.
This adds a few build config options you can set in args.gn (gn args out/foo --list for all):
- is_debug = true to enable debug builds (defaults to release)
- llvm_enable_assertions to toggle assertions (defaults to true)
- clang_base_path, if set an absolute path to a locally-built clang to be used as host compiler, e.g. clang_base_path = getenv("HOME") + "/src/chrome/src/third_party/llvm-build/Release+Asserts"
The convention is to use the name secondary, i.e. //llvm/utils/gn/secondary.