|  | .. _BuildingCompilerRT: | 
|  |  | 
|  | =============== | 
|  | Building Compiler-RT | 
|  | =============== | 
|  |  | 
|  | .. contents:: | 
|  | :local: | 
|  |  | 
|  | .. _build instructions: | 
|  |  | 
|  | The instructions on this page are aimed at vendors who ship Compiler-RT as part of an | 
|  | operating system distribution, a toolchain or similar shipping vehicules. If you | 
|  | are a user merely trying to use Compiler-RT in your program, you most likely want to | 
|  | refer to your vendor's documentation, or to the general documentation for using | 
|  | LLVM, Clang, the various santizers, etc. | 
|  |  | 
|  | CMake Options | 
|  | ============= | 
|  |  | 
|  | Here are some of the CMake variables that are used often, along with a | 
|  | brief explanation and LLVM-specific notes. For full documentation, check the | 
|  | CMake docs or execute ``cmake --help-variable VARIABLE_NAME``. | 
|  |  | 
|  | **CMAKE_BUILD_TYPE**:STRING | 
|  | Sets the build type for ``make`` based generators. Possible values are | 
|  | Release, Debug, RelWithDebInfo and MinSizeRel. On systems like Visual Studio | 
|  | the user sets the build type with the IDE settings. | 
|  |  | 
|  | **CMAKE_INSTALL_PREFIX**:PATH | 
|  | Path where LLVM will be installed if "make install" is invoked or the | 
|  | "INSTALL" target is built. | 
|  |  | 
|  | **CMAKE_CXX_COMPILER**:STRING | 
|  | The C++ compiler to use when building and testing Compiler-RT. | 
|  |  | 
|  |  | 
|  | .. _compiler-rt-specific options: | 
|  |  | 
|  | Compiler-RT specific options | 
|  | ----------------------- | 
|  |  | 
|  | .. option:: COMPILER_RT_INSTALL_PATH:PATH | 
|  |  | 
|  | **Default**: ```` (empty relative path) | 
|  |  | 
|  | Prefix for directories where built Compiler-RT artifacts should be installed. | 
|  | Can be an absolute path, like the default empty string, in which case it is | 
|  | relative ``CMAKE_INSTALL_PREFIX``. If setting a relative path, make sure to | 
|  | include the ``:PATH`` with your ``-D``, i.e. use | 
|  | ``-DCOMPILER_RT_INSTALL_PATH:PATH=...`` not | 
|  | ``-DCOMPILER_RT_INSTALL_PATH=...``, otherwise CMake will convert the | 
|  | path to an absolute path. | 
|  |  | 
|  | .. option:: COMPILER_RT_INSTALL_LIBRARY_DIR:PATH | 
|  |  | 
|  | **Default**: ``lib`` | 
|  |  | 
|  | Path where built Compiler-RT libraries should be installed. If a relative | 
|  | path, relative to ``COMPILER_RT_INSTALL_PATH``. | 
|  |  | 
|  | .. option:: COMPILER_RT_INSTALL_BINARY_DIR:PATH | 
|  |  | 
|  | **Default**: ``bin`` | 
|  |  | 
|  | Path where built Compiler-RT executables should be installed. If a relative | 
|  | path, relative to ``COMPILER_RT_INSTALL_PATH``. | 
|  |  | 
|  | .. option:: COMPILER_RT_INSTALL_INCLUDE_DIR:PATH | 
|  |  | 
|  | **Default**: ``include`` | 
|  |  | 
|  | Path where Compiler-RT headers should be installed. If a relative | 
|  | path, relative to ``COMPILER_RT_INSTALL_PATH``. | 
|  |  | 
|  | .. option:: COMPILER_RT_INSTALL_DATA_DIR:PATH | 
|  |  | 
|  | **Default**: ``share`` | 
|  |  | 
|  | Path where Compiler-RT data should be installed. If a relative | 
|  | path, relative to ``COMPILER_RT_INSTALL_PATH``. | 
|  |  | 
|  | .. _LLVM-specific variables: | 
|  |  | 
|  | LLVM-specific options | 
|  | --------------------- | 
|  |  | 
|  | .. option:: LLVM_LIBDIR_SUFFIX:STRING | 
|  |  | 
|  | Extra suffix to append to the directory where libraries are to be | 
|  | installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64`` | 
|  | to install libraries to ``/usr/lib64``. |