Refactor CMake configuration
* (Partially) Required to enable using IREE as subproject via `add_subdirectory` in an external project:
Note, `CMAKE_BINARY_DIR` would refer to the build directory of the external project and not to the directory in which IREE is build, which breaks the build.
* Replaces `CMAKE_CURRENT_BINARY_DIR` and `CMAKE_BINARY_DIR` by `CMAKE_CURRENT_BINARY_DIR`
* Consequently also replaces `CMAKE_CURRENT_SOURCE_DIR` by `PROJECT_SOURCE_DIR`
Makes progress on #659.
Closes https://github.com/google/iree/pull/1392
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/iree/pull/1392 from iml130:cmake-extern-1 ae760040cdc6c0c3f2e7387528794946b6e4e79a
PiperOrigin-RevId: 304920006
diff --git a/build_tools/cmake/iree_copts.cmake b/build_tools/cmake/iree_copts.cmake
index 37033da..875e073 100644
--- a/build_tools/cmake/iree_copts.cmake
+++ b/build_tools/cmake/iree_copts.cmake
@@ -20,10 +20,10 @@
set(IREE_CXX_STANDARD 14)
-set(IREE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+set(IREE_ROOT_DIR ${PROJECT_SOURCE_DIR})
list(APPEND IREE_COMMON_INCLUDE_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
+ ${PROJECT_SOURCE_DIR}
+ ${PROJECT_BINARY_DIR}
)
iree_select_compiler_opts(IREE_DEFAULT_COPTS
@@ -92,7 +92,7 @@
set(FLATBUFFERS_BUILD_FLATHASH OFF CACHE BOOL "" FORCE)
set(FLATBUFFERS_BUILD_GRPCTEST OFF CACHE BOOL "" FORCE)
set(FLATBUFFERS_INCLUDE_DIRS
- "${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatbuffers/include/"
+ "${PROJECT_SOURCE_DIR}/third_party/flatbuffers/include/"
)
iree_select_compiler_opts(FLATBUFFERS_COPTS
CLANG
@@ -132,10 +132,10 @@
set(LLVM_ENABLE_BINDINGS OFF CACHE BOOL "" FORCE)
list(APPEND IREE_COMMON_INCLUDE_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-project/llvm/include
- ${CMAKE_CURRENT_BINARY_DIR}/third_party/llvm-project/llvm/include
- ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-project/mlir/include
- ${CMAKE_CURRENT_BINARY_DIR}/third_party/llvm-project/llvm/tools/mlir/include
+ ${PROJECT_SOURCE_DIR}/third_party/llvm-project/llvm/include
+ ${PROJECT_BINARY_DIR}/third_party/llvm-project/llvm/include
+ ${PROJECT_SOURCE_DIR}/third_party/llvm-project/mlir/include
+ ${PROJECT_BINARY_DIR}/third_party/llvm-project/llvm/tools/mlir/include
)
set(MLIR_TABLEGEN_EXE mlir-tblgen)
@@ -146,7 +146,8 @@
#-------------------------------------------------------------------------------
list(APPEND IREE_COMMON_INCLUDE_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}/third_party/tensorflow
+ ${PROJECT_SOURCE_DIR}/third_party/tensorflow
+ ${PROJECT_BINARY_DIR}/build_tools/third_party/tensorflow
)
#-------------------------------------------------------------------------------
@@ -154,5 +155,5 @@
#-------------------------------------------------------------------------------
list(APPEND IREE_COMMON_INCLUDE_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}/third_party/google_tracing_framework/bindings/cpp/include
+ ${PROJECT_SOURCE_DIR}/third_party/google_tracing_framework/bindings/cpp/include
)
diff --git a/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeLists.txt b/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeLists.txt
index 6e62fc2..230e8af 100644
--- a/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeLists.txt
+++ b/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeLists.txt
@@ -18,12 +18,12 @@
set(TF_MLIR_XLA_COPTS_BASE
"-I${IREE_ROOT_DIR}/third_party/tensorflow/"
- "-I${CMAKE_BINARY_DIR}/build_tools/third_party/tensorflow/"
+ "-I${PROJECT_BINARY_DIR}/build_tools/third_party/tensorflow/"
)
# Create directories in the build tree for external_tablegen_library targets to use.
-file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/ir")
-file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/transforms")
+file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/ir")
+file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/transforms")
external_cc_library(
PACKAGE