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

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

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