Replacing use of PROJECT_SOURCE_DIR/PROJECT_BINARY_DIR.
Those use the previously defined project() and that will be wrong if
IREE is included under another project.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 474109c..dba9ea9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -337,17 +337,17 @@
     add_iree_mlir_src_dep("third_party/llvm-project")
 
     # Extend module path to allow submodules to use LLVM and MLIR CMake modules
-    list(APPEND CMAKE_MODULE_PATH "${PROJECT_BINARY_DIR}/lib/cmake/mlir")
-    list(APPEND CMAKE_MODULE_PATH "${PROJECT_BINARY_DIR}/third_party/llvm-project/llvm/lib/cmake/llvm/")
+    list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/mlir")
+    list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_BINARY_DIR}/third_party/llvm-project/llvm/lib/cmake/llvm/")
 
     # Set include directories
     list(APPEND LLVM_INCLUDE_DIRS
-      ${PROJECT_SOURCE_DIR}/third_party/llvm-project/llvm/include
-      ${PROJECT_BINARY_DIR}/third_party/llvm-project/llvm/include
+      ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-project/llvm/include
+      ${CMAKE_CURRENT_BINARY_DIR}/third_party/llvm-project/llvm/include
     )
     list(APPEND MLIR_INCLUDE_DIRS
-      ${PROJECT_SOURCE_DIR}/third_party/llvm-project/mlir/include
-      ${PROJECT_BINARY_DIR}/third_party/llvm-project/llvm/tools/mlir/include
+      ${CMAKE_CURRENT_SOURCE_DIR}/third_party/llvm-project/mlir/include
+      ${CMAKE_CURRENT_BINARY_DIR}/third_party/llvm-project/llvm/tools/mlir/include
     )
 
     # Set build option to use MHLO alongside with bundled MLIR
@@ -439,7 +439,7 @@
   add_custom_target(iree_host_flatcc_cli
     COMMAND
       "${CMAKE_COMMAND}" -E copy_if_different
-        "${PROJECT_SOURCE_DIR}/third_party/flatcc/bin/flatcc${IREE_HOST_EXECUTABLE_SUFFIX}"
+        "${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatcc/bin/flatcc${IREE_HOST_EXECUTABLE_SUFFIX}"
         "${IREE_HOST_BINARY_ROOT}/bin/flatcc_cli${IREE_HOST_EXECUTABLE_SUFFIX}"
     DEPENDS iree_host_build_flatcc_cli
     COMMENT "Installing host flatcc..."
diff --git a/build_tools/cmake/iree_copts.cmake b/build_tools/cmake/iree_copts.cmake
index 968380c..35425be 100644
--- a/build_tools/cmake/iree_copts.cmake
+++ b/build_tools/cmake/iree_copts.cmake
@@ -32,10 +32,10 @@
 
 set(IREE_CXX_STANDARD ${CMAKE_CXX_STANDARD})
 
-set(IREE_ROOT_DIR ${PROJECT_SOURCE_DIR})
+set(IREE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 list(APPEND IREE_COMMON_INCLUDE_DIRS
-  ${PROJECT_SOURCE_DIR}
-  ${PROJECT_BINARY_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_BINARY_DIR}
 )
 
 iree_select_compiler_opts(IREE_DEFAULT_COPTS
@@ -207,7 +207,7 @@
 set(FLATBUFFERS_BUILD_GRPCTEST OFF CACHE BOOL "" FORCE)
 set(FLATBUFFERS_INSTALL OFF CACHE BOOL "" FORCE)
 set(FLATBUFFERS_INCLUDE_DIRS
-  "${PROJECT_SOURCE_DIR}/third_party/flatbuffers/include/"
+  "${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatbuffers/include/"
 )
 
 if(CMAKE_CROSSCOMPILING)
@@ -270,10 +270,10 @@
 # TODO: This should go in add_iree_mlir_src_dep at the top level.
 if(IREE_MLIR_DEP_MODE STREQUAL "BUNDLED")
   list(APPEND IREE_COMMON_INCLUDE_DIRS
-    ${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
+    ${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
   )
 endif()
 
@@ -287,12 +287,12 @@
 #-------------------------------------------------------------------------------
 
 list(APPEND IREE_COMMON_INCLUDE_DIRS
-  ${PROJECT_SOURCE_DIR}/third_party/tensorflow
-  ${PROJECT_SOURCE_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/include/
-  ${PROJECT_BINARY_DIR}/third_party/tensorflow
-  ${PROJECT_BINARY_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/include/
-  ${PROJECT_BINARY_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/IR/
-  ${PROJECT_BINARY_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms
+  ${CMAKE_CURRENT_SOURCE_DIR}/third_party/tensorflow
+  ${CMAKE_CURRENT_SOURCE_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/include/
+  ${CMAKE_CURRENT_BINARY_DIR}/third_party/tensorflow
+  ${CMAKE_CURRENT_BINARY_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/include/
+  ${CMAKE_CURRENT_BINARY_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/IR/
+  ${CMAKE_CURRENT_BINARY_DIR}/third_party/tensorflow/tensorflow/compiler/mlir/hlo/lib/Dialect/mhlo/transforms
 )
 
 #-------------------------------------------------------------------------------
@@ -305,8 +305,8 @@
   set(EMITC_INCLUDE_TESTS OFF)
 
   list(APPEND IREE_COMMON_INCLUDE_DIRS
-    ${PROJECT_SOURCE_DIR}/third_party/mlir-emitc/include
-    ${PROJECT_BINARY_DIR}/third_party/mlir-emitc/include
+    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/mlir-emitc/include
+    ${CMAKE_CURRENT_BINARY_DIR}/third_party/mlir-emitc/include
   )
   add_definitions(-DIREE_HAVE_EMITC_DIALECT)
 endif()
diff --git a/build_tools/cmake/iree_cross_compile.cmake b/build_tools/cmake/iree_cross_compile.cmake
index 3cfa1e9..6e39465 100644
--- a/build_tools/cmake/iree_cross_compile.cmake
+++ b/build_tools/cmake/iree_cross_compile.cmake
@@ -101,7 +101,8 @@
   message(STATUS "C++ compiler for ${CONFIG_NAME} build: ${_CONFIG_CXX_COMPILER}")
 
   add_custom_command(OUTPUT ${IREE_${CONFIG_NAME}_BINARY_ROOT}/CMakeCache.txt
-    COMMAND "${CMAKE_COMMAND}" "${PROJECT_SOURCE_DIR}" -G "${CMAKE_GENERATOR}"
+    COMMAND "${CMAKE_COMMAND}" "${CMAKE_CURRENT_SOURCE_DIR}"
+        -G "${CMAKE_GENERATOR}"
         -DCMAKE_MAKE_PROGRAM="${CMAKE_MAKE_PROGRAM}"
         -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
         -DCMAKE_C_COMPILER="${_CONFIG_C_COMPILER}"
diff --git a/build_tools/cmake/iree_tablegen_doc.cmake b/build_tools/cmake/iree_tablegen_doc.cmake
index cc62fe4..372b3b5 100644
--- a/build_tools/cmake/iree_tablegen_doc.cmake
+++ b/build_tools/cmake/iree_tablegen_doc.cmake
@@ -73,7 +73,7 @@
   endwhile()
 
   # Put all dialect docs at one place.
-  set(_DOC_DIR ${PROJECT_BINARY_DIR}/doc/Dialects/)
+  set(_DOC_DIR ${CMAKE_CURRENT_BINARY_DIR}/doc/Dialects/)
   # Set a target to drive copy.
   add_custom_target(${_NAME}_target
             ${CMAKE_COMMAND} -E make_directory ${_DOC_DIR}
diff --git a/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt b/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt
index 60352f0..017fd1c 100644
--- a/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt
+++ b/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt
@@ -49,7 +49,5 @@
   DEPS
     LLVMSupport
     spirv-cross-msl
-  INCLUDES
-    ${PROJECT_SOURCE_DIR}/third_party
   PUBLIC
 )
diff --git a/iree/compiler/Dialect/HAL/Target/MetalSPIRV/SPIRVToMSL.cpp b/iree/compiler/Dialect/HAL/Target/MetalSPIRV/SPIRVToMSL.cpp
index 5d89aa3..18b0073 100644
--- a/iree/compiler/Dialect/HAL/Target/MetalSPIRV/SPIRVToMSL.cpp
+++ b/iree/compiler/Dialect/HAL/Target/MetalSPIRV/SPIRVToMSL.cpp
@@ -19,7 +19,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
-#include "spirv_cross/spirv_msl.hpp"
+#include "third_party/spirv_cross/spirv_msl.hpp"
 
 #define DEBUG_TYPE "spirv-to-msl"