| 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. |