CMake: fix add_subdirectory(SwiftShader)

Essentially, do not assume CMAKE_SOURCE_DIR is the SwiftShader root
directory. Instead, we now set SWIFTSHADER_DIR in the root CMakeLists,
and use that everywhere.

Bug: b/145758253
Change-Id: I4968d0dc06ebd8e45791f7cd956e5aeeefddd54f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43949
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1f990db..61e0653 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -175,9 +175,10 @@
 # Directories
 ###########################################################
 
-set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
-set(THIRD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party)
-set(TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
+set(SWIFTSHADER_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+set(SOURCE_DIR ${SWIFTSHADER_DIR}/src)
+set(THIRD_PARTY_DIR ${SWIFTSHADER_DIR}/third_party)
+set(TESTS_DIR ${SWIFTSHADER_DIR}/tests)
 
 ###########################################################
 # Initialize submodules
@@ -242,13 +243,13 @@
 # Recursively calls source_group on the files of the directory
 # so that Visual Studio has the files in a folder tree
 macro(group_all_sources directory)
-    file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${directory} ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/*)
+    file(GLOB files RELATIVE ${SWIFTSHADER_DIR}/${directory} ${SWIFTSHADER_DIR}/${directory}/*)
     foreach(file ${files})
-        if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
+        if(IS_DIRECTORY ${SWIFTSHADER_DIR}/${directory}/${file})
             group_all_sources(${directory}/${file})
         else()
             string(REPLACE "/" "\\" groupname ${directory})
-            source_group(${groupname} FILES ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/${file})
+            source_group(${groupname} FILES ${SWIFTSHADER_DIR}/${directory}/${file})
         endif()
     endforeach()
 endmacro()
@@ -618,15 +619,6 @@
 endif()
 
 ###########################################################
-# Include Directories
-###########################################################
-
-set(VULKAN_INCLUDE_DIR
-    ${SOURCE_DIR}
-    ${CMAKE_CURRENT_SOURCE_DIR}/include
-)
-
-###########################################################
 # File Lists
 ###########################################################
 
diff --git a/src/Device/CMakeLists.txt b/src/Device/CMakeLists.txt
index 8f5f234..a0c72f4 100644
--- a/src/Device/CMakeLists.txt
+++ b/src/Device/CMakeLists.txt
@@ -65,7 +65,7 @@
 target_include_directories(vk_device
     PUBLIC
         ".."
-        "${CMAKE_SOURCE_DIR}/include"
+        "${SWIFTSHADER_DIR}/include"
 )
 
 target_compile_options(vk_device
diff --git a/src/Main/CMakeLists.txt b/src/Main/CMakeLists.txt
index c548a72..5ab1def 100644
--- a/src/Main/CMakeLists.txt
+++ b/src/Main/CMakeLists.txt
@@ -68,7 +68,7 @@
     PUBLIC
         ".."
     PRIVATE
-        ${CMAKE_SOURCE_DIR}/include # For EGL
+        ${SWIFTSHADER_DIR}/include # For EGL
 )
 
 target_compile_definitions(gl_main
diff --git a/src/OpenGL/common/CMakeLists.txt b/src/OpenGL/common/CMakeLists.txt
index 61e838a..872ddac 100644
--- a/src/OpenGL/common/CMakeLists.txt
+++ b/src/OpenGL/common/CMakeLists.txt
@@ -49,8 +49,8 @@
 target_include_directories(libGLESCommon
     PUBLIC
         ".."
-        "${CMAKE_SOURCE_DIR}/include"
-        "${CMAKE_SOURCE_DIR}/src"
+        "${SWIFTSHADER_DIR}/include"
+        "${SWIFTSHADER_DIR}/src"
 )
 
 target_compile_definitions(libGLESCommon
diff --git a/src/OpenGL/compiler/CMakeLists.txt b/src/OpenGL/compiler/CMakeLists.txt
index d636c53..31dfe7a 100644
--- a/src/OpenGL/compiler/CMakeLists.txt
+++ b/src/OpenGL/compiler/CMakeLists.txt
@@ -133,8 +133,8 @@
 target_include_directories(GLCompiler
     PRIVATE
         ".."
-        "${CMAKE_SOURCE_DIR}/include"
-        "${CMAKE_SOURCE_DIR}/src"
+        "${SWIFTSHADER_DIR}/include"
+        "${SWIFTSHADER_DIR}/src"
 )
 
 target_compile_definitions(GLCompiler
diff --git a/src/Pipeline/CMakeLists.txt b/src/Pipeline/CMakeLists.txt
index a4ca0cf..1afde4b 100644
--- a/src/Pipeline/CMakeLists.txt
+++ b/src/Pipeline/CMakeLists.txt
@@ -93,7 +93,7 @@
 target_include_directories(vk_pipeline
     PUBLIC
         ".."
-        "${CMAKE_SOURCE_DIR}/include"
+        "${SWIFTSHADER_DIR}/include"
         "${SPIRV-Headers_SOURCE_DIR}/include"
         "${SPIRV_TOOLS_EXT_INC_DIR}"
 )
diff --git a/src/Vulkan/CMakeLists.txt b/src/Vulkan/CMakeLists.txt
index 65e29ad..b6d4c6d 100644
--- a/src/Vulkan/CMakeLists.txt
+++ b/src/Vulkan/CMakeLists.txt
@@ -155,7 +155,6 @@
 target_include_directories(vk_swiftshader
     PRIVATE
         ".."
-        # "${CMAKE_SOURCE_DIR}/include"
 )
 
 target_compile_options(vk_swiftshader
diff --git a/src/WSI/CMakeLists.txt b/src/WSI/CMakeLists.txt
index e395165..d2eb42c 100644
--- a/src/WSI/CMakeLists.txt
+++ b/src/WSI/CMakeLists.txt
@@ -66,7 +66,7 @@
 target_include_directories(vk_wsi
     PUBLIC
         ".."
-        "${CMAKE_SOURCE_DIR}/include"
+        "${SWIFTSHADER_DIR}/include"
 )
 
 target_compile_options(vk_wsi
diff --git a/tests/GLESUnitTests/CMakeLists.txt b/tests/GLESUnitTests/CMakeLists.txt
index 1c51430..6ea50a7 100644
--- a/tests/GLESUnitTests/CMakeLists.txt
+++ b/tests/GLESUnitTests/CMakeLists.txt
@@ -39,7 +39,7 @@
 
 target_include_directories(gles-unittests
     PRIVATE
-        "${CMAKE_SOURCE_DIR}/include"
+        "${SWIFTSHADER_DIR}/include"
 )
 
 target_compile_definitions(gles-unittests
diff --git a/tests/VulkanUnitTests/CMakeLists.txt b/tests/VulkanUnitTests/CMakeLists.txt
index aa6c298..81889ce 100644
--- a/tests/VulkanUnitTests/CMakeLists.txt
+++ b/tests/VulkanUnitTests/CMakeLists.txt
@@ -50,7 +50,7 @@
 
 target_include_directories(vk-unittests
     PRIVATE
-        "${CMAKE_SOURCE_DIR}/include"
+        "${SWIFTSHADER_DIR}/include"
 )
 
 target_compile_definitions(vk-unittests