| if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) | |
| message(FATAL_ERROR | |
| "This project is intended to be built as part of LLVM via " | |
| "-DLLVM_EXTERNAL_PROJECTS=iree-dialects " | |
| "-DLLVM_EXTERNAL_IREE_DIALECTS_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}") | |
| endif() | |
| option(MLIR_ENABLE_BINDINGS_PYTHON "Enables MLIR Python Bindings" OFF) | |
| set(IREE_DIALECTS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") | |
| set(IREE_DIALECTS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") | |
| message(STATUS "Building iree-dialects project at ${IREE_DIALECTS_SOURCE_DIR} (into ${IREE_DIALECTS_BINARY_DIR})") | |
| # TODO: Needed for tablegen. Remove. | |
| include_directories(SYSTEM ${MLIR_INCLUDE_DIRS}) | |
| include_directories(SYSTEM ${IREE_DIALECTS_SOURCE_DIR}/include) | |
| function(iree_dialects_target_includes target) | |
| set(_DIRS | |
| ${MLIR_INCLUDE_DIRS} | |
| ${IREE_DIALECTS_SOURCE_DIR}/include | |
| ${IREE_DIALECTS_BINARY_DIR}/include | |
| ) | |
| # In LLVM parlance, the actual target may just be an interface and may not | |
| # be responsible for actually compiling anything. The corresponding obj. | |
| # target, when present, is just used for compilation and does not | |
| # contribute to the interface properties. | |
| # TODO: Normalize this upstream. | |
| set_property(TARGET ${target} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES | |
| $<BUILD_INTERFACE:${_DIRS}>) | |
| if(TARGET obj.${target}) | |
| set_property(TARGET ${target} APPEND PROPERTY INCLUDE_DIRECTORIES | |
| $<BUILD_INTERFACE:${_DIRS}>) | |
| endif() | |
| endfunction() | |
| # Configure CMake and tablegen. | |
| list(APPEND CMAKE_MODULE_PATH ${MLIR_CMAKE_DIR}) | |
| list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR}) | |
| add_custom_target(iree-dialects-doc) | |
| include(TableGen) | |
| include(AddLLVM) | |
| include(AddMLIR) | |
| ################################################################################ | |
| # Setup python. | |
| ################################################################################ | |
| if(MLIR_ENABLE_BINDINGS_PYTHON) | |
| include(MLIRDetectPythonEnv) | |
| mlir_configure_python_dev_packages() | |
| endif() | |
| add_subdirectory(include) | |
| add_subdirectory(lib) | |
| add_subdirectory(test) | |
| add_subdirectory(tools) | |
| if(MLIR_ENABLE_BINDINGS_PYTHON) | |
| add_subdirectory(python) | |
| endif() |