CMake Options and Variables

Frequently-used CMake Variables

CMAKE_BUILD_TYPE:STRING

Sets the build type. Possible values are Release, Debug, RelWithDebInfo/FastBuild and MinSizeRel. If unset, build type is set to Release.

CMAKE_<LANG>_COMPILER:STRING

This is the command that will be used as the <LANG> compiler, which are C and CXX in IREE. These variables are set to compile IREE with clang or rather clang++. Once set, these variables can not be changed.

IREE-specific CMake Options and Variables

This gives a brief explanation of IREE specific CMake options and variables.

IREE_ENABLE_RUNTIME_TRACING:BOOL

Enables instrumented runtime tracing. Defaults to OFF.

IREE_ENABLE_MLIR:BOOL

Enables MLIR/LLVM dependencies. Defaults to ON. MLIR/LLVM dependencies are required when building the IREE compiler components. Therefore, the option is automatically set to ON if IREE_BUILD_COMPILER is set to ON.

IREE_ENABLE_EMITC:BOOL

Enables the build of the out-of-tree MLIR dialect EmitC. Defaults to OFF. To build the EmitC dialect, IREE_ENABLE_MLIR must be set to ON.

IREE_BUILD_COMPILER:BOOL

Builds the IREE compiler. Defaults to ON.

IREE_BUILD_TESTS:BOOL

Builds IREE unit tests. Defaults to ON.

IREE_BUILD_DOCS:BOOL

Builds IREE documentation. Defaults to OFF.

IREE_BUILD_SAMPLES:BOOL

Builds IREE sample projects. Defaults to ON.

IREE_BUILD_DEBUGGER:BOOL

Builds the IREE debugger app. Defaults to OFF.

IREE_BUILD_PYTHON_BINDINGS:BOOL

Builds the IREE python bindings. Defaults to OFF.

IREE_BUILD_EXPERIMENTAL:BOOL

Builds experimental projects. Defaults to OFF.

IREE_HAL_DRIVERS_TO_BUILD:STRING

This does not have any effect at the moment, but will be supported in the future! Semicolon-separated list of HAL drivers to build, or all for building all HAL drivers. Case-insensitive. Defaults to all. Example: -DIREE_HAL_DRIVERS_TO_BUILD="Vulkan;VMLA".

IREE_TARGET_BACKENDS_TO_BUILD:STRING

This does not have any effect at the moment, but will be supported in the future! Semicolon-separated list of HAL drivers to build, or all for building all HAL drivers. Case-insensitive. Defaults to all. Example: -DIREE_HAL_DRIVERS_TO_BUILD="Vulkan_SPIRV;VMLA".

IREE_ENABLE_LLD:BOOL

Use lld when linking. Defaults to OFF. This option is equivalent to -DIREE_USE_LINKER=lld. The option IREE_ENABLE_LLD and IREE_USE_LINKER can not be set at the same time.

IREE_MLIR_DEP_MODE:STRING

Defines the MLIR dependency mode. Case-sensitive. Can be BUNDLED, DISABLED or INSTALLED. Defaults to BUNDLED. If set to INSTALLED, the variable MLIR_DIR needs to be passed and that LLVM needs to be compiled with LLVM_ENABLE_RTTI set to ON.

MLIR-specific CMake Options and Variables

MLIR_DIR:STRING

Specifies the path where to look for the installed MLIR/LLVM packages. Required if IREE_MLIR_DEP_MODE is set to INSTALLED.