llvm-build - LLVM Project Build Utility
=======================================


SYNOPSIS
--------


**llvm-build** [*options*]


DESCRIPTION
-----------


**llvm-build** is a tool for working with LLVM projects that use the LLVMBuild
system for describing their components.

At heart, **llvm-build** is responsible for loading, verifying, and manipulating
the project's component data. The tool is primarily designed for use in
implementing build systems and tools which need access to the project structure
information.


OPTIONS
-------



**-h**, **--help**

 Print the builtin program help.



**--source-root**\ =\ *PATH*

 If given, load the project at the given source root path. If this option is not
 given, the location of the project sources will be inferred from the location of
 the **llvm-build** script itself.



**--print-tree**

 Print the component tree for the project.



**--write-library-table**

 Write out the C++ fragment which defines the components, library names, and
 required libraries. This C++ fragment is built into llvm-config|llvm-config
 in order to provide clients with the list of required libraries for arbitrary
 component combinations.



**--write-llvmbuild**

 Write out new *LLVMBuild.txt* files based on the loaded components. This is
 useful for auto-upgrading the schema of the files. **llvm-build** will try to a
 limited extent to preserve the comments which were written in the original
 source file, although at this time it only preserves block comments that precede
 the section names in the *LLVMBuild* files.



**--write-cmake-fragment**

 Write out the LLVMBuild in the form of a CMake fragment, so it can easily be
 consumed by the CMake based build system. The exact contents and format of this
 file are closely tied to how LLVMBuild is integrated with CMake, see LLVM's
 top-level CMakeLists.txt.



**--write-make-fragment**

 Write out the LLVMBuild in the form of a Makefile fragment, so it can easily be
 consumed by a Make based build system. The exact contents and format of this
 file are closely tied to how LLVMBuild is integrated with the Makefiles, see
 LLVM's Makefile.rules.



**--llvmbuild-source-root**\ =\ *PATH*

 If given, expect the *LLVMBuild* files for the project to be rooted at the
 given path, instead of inside the source tree itself. This option is primarily
 designed for use in conjunction with **--write-llvmbuild** to test changes to
 *LLVMBuild* schema.




EXIT STATUS
-----------


**llvm-build** exits with 0 if operation was successful. Otherwise, it will exist
with a non-zero value.
