Make some third_party deps configurable in CMake

This will let Skia sync its own copy and point
Dawn at them.

Change-Id: I0326c8e2f74867508fa67d3c71c0148891cc8a6c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/270815
Commit-Queue: Kaylee Lubick <kjlubick@google.com>
Reviewed-by: David Neto <dneto@google.com>
Auto-Submit: Kaylee Lubick <kjlubick@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: David Neto <dneto@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0c6fa0..59e3eab 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -192,12 +192,15 @@
 set_if_not_defined(DAWN_LPM_DIR "${DAWN_THIRD_PARTY_DIR}/libprotobuf-mutator/src" "Directory in which to find libprotobuf")
 set_if_not_defined(DAWN_EMDAWNWEBGPU_DIR "${DAWN_THIRD_PARTY_DIR}/emdawnwebgpu" "Directory in which to find Dawn specific Emscripten bindings")
 set_if_not_defined(DAWN_GOOGLETEST_DIR "${DAWN_THIRD_PARTY_DIR}/googletest" "Directory in which to find googletest")
-
+set_if_not_defined(DAWN_EGL_REGISTRY_DIR "${DAWN_THIRD_PARTY_DIR}/khronos/EGL-Registry" "Directory in which to find EGL-Registry")
+set_if_not_defined(DAWN_OPENGL_REGISTRY_DIR "${DAWN_THIRD_PARTY_DIR}/khronos/OpenGL-Registry" "Directory in which to find OpenGL-Registry")
 set_if_not_defined(DAWN_SPIRV_TOOLS_DIR "${DAWN_THIRD_PARTY_DIR}/spirv-tools/src" "Directory in which to find SPIRV-Tools")
 set_if_not_defined(DAWN_SPIRV_HEADERS_DIR "${DAWN_THIRD_PARTY_DIR}/spirv-headers/src" "Directory in which to find SPIRV-Headers")
 set_if_not_defined(DAWN_GLSLANG_DIR "${DAWN_THIRD_PARTY_DIR}/glslang/src" "Directory in which to find GLSLang")
 set_if_not_defined(DAWN_VULKAN_HEADERS_DIR "${DAWN_THIRD_PARTY_DIR}/vulkan-headers/src" "Directory in which to find Vulkan-Headers")
 set_if_not_defined(DAWN_VULKAN_UTILITY_LIBRARIES_DIR "${DAWN_THIRD_PARTY_DIR}/vulkan-utility-libraries/src" "Directory in which to find Vulkan-Utility-Libraries")
+set_if_not_defined(DAWN_WEBGPU_HEADERS_DIR "${DAWN_THIRD_PARTY_DIR}/webgpu-headers/src" "Directory in which to find webgpu headers")
+
 
 # Handling of the type of monolithic library to build, if any.
 set(DAWN_BUILD_MONOLITHIC_LIBRARY "STATIC" CACHE STRING "Build monolithic library: SHARED, STATIC, or OFF.")
diff --git a/generator/CMakeLists.txt b/generator/CMakeLists.txt
index f3f543e..2e70f55 100644
--- a/generator/CMakeLists.txt
+++ b/generator/CMakeLists.txt
@@ -185,7 +185,7 @@
              ${arg_TARGET}
              ${arg_UNPARSED_ARGUMENTS}
              --webgpu-json
-             "${Dawn_SOURCE_DIR}/third_party/webgpu-headers/src/webgpu.json"
+             "${DAWN_WEBGPU_HEADERS_DIR}/webgpu.json"
     )
 
     if (SOURCES AND NOT arg_OUTPUT_SOURCES)
diff --git a/src/dawn/native/CMakeLists.txt b/src/dawn/native/CMakeLists.txt
index 081d6ef..8cefcdd 100644
--- a/src/dawn/native/CMakeLists.txt
+++ b/src/dawn/native/CMakeLists.txt
@@ -649,7 +649,7 @@
         SCRIPT "${Dawn_SOURCE_DIR}/generator/opengl_loader_generator.py"
         PRINT_NAME "OpenGL function loader"
         EXTRA_PARAMETERS "--gl-xml"
-             "${Dawn_SOURCE_DIR}/third_party/khronos/OpenGL-Registry/xml/gl.xml"
+             "${DAWN_OPENGL_REGISTRY_DIR}/xml/gl.xml"
              "--supported-extensions"
              "${Dawn_SOURCE_DIR}/src/dawn/native/opengl/supported_extensions.json"
         OUTPUT_HEADERS DAWN_NATIVE_OPENGL_AUTOGEN_HEADERS
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index 368dc97..a75de42 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -177,8 +177,8 @@
 if (DAWN_ENABLE_DESKTOP_GL OR DAWN_ENABLE_OPENGLES)
     # Header-only library for khrplatform.h
     add_library(dawn_khronos_platform INTERFACE)
-    target_sources(dawn_khronos_platform INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/khronos/EGL-Registry/api/KHR/khrplatform.h")
-    target_include_directories(dawn_khronos_platform INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/khronos/EGL-Registry/api")
+    target_sources(dawn_khronos_platform INTERFACE "${DAWN_EGL_REGISTRY_DIR}/api/KHR/khrplatform.h")
+    target_include_directories(dawn_khronos_platform INTERFACE "${DAWN_EGL_REGISTRY_DIR}/api")
 endif()
 
 if (NOT TARGET Vulkan::Headers AND DAWN_ENABLE_VULKAN)