CMAKE_BUILD_TYPE:STRINGSets the build type. Possible values are Release, Debug, RelWithDebInfo and MinSizeRel. If unset, build type is set to Release.
CMAKE_<LANG>_COMPILER:STRINGThis 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.
This gives a brief explanation of IREE specific CMake options and variables.
IREE_ENABLE_RUNTIME_TRACING:BOOLEnables instrumented runtime tracing. Defaults to OFF.
IREE_ENABLE_MLIR:BOOLEnables 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:BOOLEnables 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:BOOLBuilds the IREE compiler. Defaults to ON.
IREE_BUILD_TESTS:BOOLBuilds IREE unit tests. Defaults to ON.
IREE_BUILD_DOCS:BOOLBuilds IREE documentation. Defaults to OFF.
IREE_BUILD_SAMPLES:BOOLBuilds IREE sample projects. Defaults to ON.
IREE_BUILD_PYTHON_BINDINGS:BOOLBuilds the IREE python bindings. Defaults to OFF.
IREE_BUILD_BINDINGS_TFLITE:BOOLBuilds the IREE TFLite C API compatibility shim. Defaults to ON.
IREE_BUILD_BINDINGS_TFLITE_JAVA:BOOLBuilds the IREE TFLite Java bindings with the C API compatibility shim. Defaults to ON.
IREE_BUILD_EXPERIMENTAL_JAVA_BINDINGS:BOOLBuilds the experimental java bindings. Defaults to OFF.
IREE_BUILD_EXPERIMENTAL_REMOTING:BOOLBuilds experimental remoting component. Defaults to OFF.
IREE_HAL_DRIVERS_TO_BUILD:STRINGSemicolon-separated list of HAL drivers to build, or all for building all HAL drivers. Case-insensitive. If an empty list is provided, will build no HAL drivers. Defaults to all. Example: -DIREE_HAL_DRIVERS_TO_BUILD=Vulkan;VMLA.
IREE_TARGET_BACKENDS_TO_BUILD:STRINGSemicolon-separated list of target backend to build, or all for building all compiler target backends. Case-insensitive. If an empty list is provided, will build no target backends. Defaults to all. Example: -DIREE_TARGET_BACKENDS_TO_BUILD=Vulkan-SPIRV;VMLA.
IREE_ENABLE_LLD:BOOLUse 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_ENABLE_ASAN:BOOLEnable address sanitizer if the current build type is Debug and the compiler supports it.
IREE_ENABLE_MSAN:BOOLEnable memory sanitizer if the current build type is Debug and the compiler supports it.
IREE_ENABLE_TSAN:BOOLEnable thread sanitizer if the current build type is Debug and the compiler supports it.
IREE_MLIR_DEP_MODE:STRINGDefines 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.
IREE_BUILD_TENSORFLOW_COMPILER:BOOLEnables building of the TensorFlow to IREE compiler under integrations/tensorflow, including some native binaries and Python packages. Note that TensorFlow's build system is bazel and this will require having previously built (or installed) the iree-import-tf at the path specified by IREE_TF_TOOLS_ROOT.
IREE_BUILD_TFLITE_COMPILER:BOOLEnables building of the TFLite to IREE compiler under integrations/tensorflow, including some native binaries and Python packages. Note that TensorFlow's build system is bazel and this will require having previously built (or installed) the iree-import-tf at the path specified by IREE_TF_TOOLS_ROOT.
IREE_BUILD_XLA_COMPILER:BOOLEnables building of the XLA to IREE compiler under integrations/tensorflow, including some native binaries and Python packages. Note that TensorFlow's build system is bazel and this will require having previously built (or installed) the iree-import-tf at the path specified by IREE_TF_TOOLS_ROOT.
IREE_TF_TOOLS_ROOT:STRINGPath to prebuilt TensorFlow integration binaries to be used by the Python bindings. Defaults to “${CMAKE_SOURCE_DIR}/integrations/tensorflow/bazel-bin/iree_tf_compiler”, which is where they would be placed by a bazel build invocation.
IREE_BUILD_EMBEDDING_SAMPLES:STRINGEnables building the simple embedding example code under iree/samples/simple_embedding. Default to OFF. Note IREE_BUILD_EMBEDDING_SAMPLES and IREE_BUILD_SAMPLES can not be set to ON at the same time.
MLIR_DIR:STRINGSpecifies the path where to look for the installed MLIR/LLVM packages. Required if IREE_MLIR_DEP_MODE is set to INSTALLED.
When cross compiling (using a toolchain file like android.toolchain.cmake), first build and install IREE's tools for your host configuration, then use the IREE_HOST_BINARY_ROOT CMake option to point the cross compiled build at the host tools.