llvm-project/llvm/docs/CommandGuide/llvm-config.rst

176 lines
3.5 KiB
ReStructuredText

llvm-config - Print LLVM compilation options
============================================
.. program:: llvm-config
SYNOPSIS
--------
**llvm-config** *option* [*components*...]
DESCRIPTION
-----------
**llvm-config** makes it easier to build applications that use LLVM. It can
print the compiler flags, linker flags and object libraries needed to link
against LLVM.
EXAMPLES
--------
To link against the JIT:
.. code-block:: sh
g++ `llvm-config --cxxflags` -o HowToUseJIT.o -c HowToUseJIT.cpp
g++ `llvm-config --ldflags` -o HowToUseJIT HowToUseJIT.o \
`llvm-config --libs engine bcreader scalaropts`
OPTIONS
-------
**--assertion-mode**
Print the assertion mode used when LLVM was built (ON or OFF).
**--bindir**
Print the installation directory for LLVM binaries.
**--build-mode**
Print the build mode used when LLVM was built (e.g. Debug or Release).
**--build-system**
Print the build system used to build LLVM (e.g. `cmake` or `gn`).
**--cflags**
Print the C compiler flags needed to use LLVM headers.
**--cmakedir**
Print the installation directory for LLVM CMake modules.
**--components**
Print all valid component names.
**--cppflags**
Print the C preprocessor flags needed to use LLVM headers.
**--cxxflags**
Print the C++ compiler flags needed to use LLVM headers.
**--has-rtti**
Print whether or not LLVM was built with rtti (YES or NO).
**--help**
Print a summary of **llvm-config** arguments.
**--host-target**
Print the target triple used to configure LLVM.
**--ignore-libllvm**
Ignore libLLVM and link component libraries instead.
**--includedir**
Print the installation directory for LLVM headers.
**--ldflags**
Print the flags needed to link against LLVM libraries.
**--libdir**
Print the installation directory for LLVM libraries.
**--libfiles**
Similar to **--libs**, but print the full path to each library file. This is
useful when creating makefile dependencies, to ensure that a tool is relinked if
any library it uses changes.
**--libnames**
Similar to **--libs**, but prints the bare filenames of the libraries
without **-l** or pathnames. Useful for linking against a not-yet-installed
copy of LLVM.
**--libs**
Print all the libraries needed to link against the specified LLVM
*components*, including any dependencies.
**--link-shared**
Link the components as shared libraries.
**--link-static**
Link the component libraries statically.
**--obj-root**
Print the object root used to build LLVM.
**--prefix**
Print the installation prefix for LLVM.
**--shared-mode**
Print how the provided components can be collectively linked (`shared` or `static`).
**--src-root**
Print the source root from which LLVM was built.
**--system-libs**
Print all the system libraries needed to link against the specified LLVM
*components*, including any dependencies.
**--targets-built**
Print the component names for all targets supported by this copy of LLVM.
**--version**
Print the version number of LLVM.
COMPONENTS
----------
To print a list of all available components, run **llvm-config
--components**. In most cases, components correspond directly to LLVM
libraries. Useful "virtual" components include:
**all**
Includes all LLVM libraries. The default if no components are specified.
**backend**
Includes either a native backend or the C backend.
**engine**
Includes either a native JIT or the bitcode interpreter.
EXIT STATUS
-----------
If **llvm-config** succeeds, it will exit with 0. Otherwise, if an error
occurs, it will exit with a non-zero value.