mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-11 17:16:07 +00:00

Sphinx allows for definitions of command-line options using `.. option <name>` and references to those options via `:option:<name>`. However, it looks like there is no scoping of these options by default, meaning that links can end up pointing to incorrect documents. See for example the llvm-mca document, which contains references to -o that, prior to this patch, pointed to a different document. What's worse is that these links appear to be non-deterministic in which one is picked (on my machine, some references end up pointing to opt, whereas on the live docs, they point to llvm-dwarfdump, for example). The fix is to add the .. program <name> tag. This essentially namespaces the options (definitions and references) to the named program, ensuring that the links are kept correct. Reviwed by: andreadb Differential Revision: https://reviews.llvm.org/D63873 llvm-svn: 364538
104 lines
2.5 KiB
ReStructuredText
104 lines
2.5 KiB
ReStructuredText
llvm-build - LLVM Project Build Utility
|
|
=======================================
|
|
|
|
.. program:: llvm-build
|
|
|
|
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.
|