aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/dawn/004-deps.patch
blob: 9a65efd35840d6b371fb5ca818280bb0080b6c49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9521fcf6a7..9c38142ec2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -460,6 +460,11 @@ set(TINT_SPIRV_TOOLS_DIR   ${DAWN_SPIRV_TOOLS_DIR})
 ################################################################################
 # Run on all subdirectories
 ################################################################################
+find_package(absl CONFIG REQUIRED)
+if (DAWN_ENABLE_VULKAN)
+    find_package(VulkanHeaders CONFIG REQUIRED)
+    find_package(VulkanUtilityLibraries CONFIG REQUIRED)
+endif()
 add_subdirectory(third_party)
 
 # TODO(crbug.com/tint/455): Tint does not currently build with CMake when
diff --git a/src/cmake/BundleLibraries.cmake b/src/cmake/BundleLibraries.cmake
index 682a73924c..1ec358c54c 100644
--- a/src/cmake/BundleLibraries.cmake
+++ b/src/cmake/BundleLibraries.cmake
@@ -92,7 +92,18 @@ function(bundle_libraries output_target library_type)
 
   # Collect $<TARGET_OBJECTS:...> from STATIC and OBJECT library dependencies
   set(all_objects "")
+  set(all_libraries "")
+  message(STATUS "all_dependencies: ${all_dependencies}")
   foreach(dependency IN LISTS all_dependencies)
+    if("${dependency}" MATCHES "^absl::")
+      list(APPEND all_libraries ${dependency})
+      continue()
+    endif()
+    if("${dependency}" MATCHES "^Vulkan-Headers" OR "${dependency}" MATCHES "^VulkanUtility")
+      list(APPEND all_libraries ${dependency})
+      continue()
+    endif()
+
     get_target_property(type ${dependency} TYPE)
 
     # We only want object files from static or object libraries.
@@ -112,6 +123,7 @@ function(bundle_libraries output_target library_type)
   # Create the output library using the validated type and collected objects
   # If all_objects is empty, add_library will still create an empty library of the specified type.
   add_library(${output_target} ${library_type} ${all_objects})
+  target_link_libraries(${output_target} PRIVATE ${all_libraries})
 
   # Add dependencies to ensure input targets are built before the bundled library.
   # This handles the build order correctly.
diff --git a/src/cmake/DawnConfig.cmake.in b/src/cmake/DawnConfig.cmake.in
index 8bfeda55bc..a0f9858530 100644
--- a/src/cmake/DawnConfig.cmake.in
+++ b/src/cmake/DawnConfig.cmake.in
@@ -31,4 +31,9 @@
 # 2. https://cmake.org/cmake/help/latest/guide/tutorial/Adding%20Export%20Configuration.html
 
 @PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+
+find_dependency(absl CONFIG)
+
 include ("${CMAKE_CURRENT_LIST_DIR}/DawnTargets.cmake")
diff --git a/src/dawn/native/CMakeLists.txt b/src/dawn/native/CMakeLists.txt
index 21ef415451..7f4867fee6 100644
--- a/src/dawn/native/CMakeLists.txt
+++ b/src/dawn/native/CMakeLists.txt
@@ -636,11 +636,17 @@ if ((DAWN_ENABLE_OPENGL OR DAWN_ENABLE_VULKAN) AND DAWN_ENABLE_SPIRV_VALIDATION)
 endif()
 
 if (DAWN_ENABLE_OPENGL)
+    find_path(OPENGL_REGISTRY_INCLUDE_DIRS "GL/glcorearb.h")
+    find_file(
+            OPENGL_XML_FILE
+            NAMES "opengl/gl.xml"
+            PATHS "${OPENGL_REGISTRY_INCLUDE_DIRS}/../share"
+    )
     DawnGenerator(
         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"
+             "${OPENGL_XML_FILE}"
              "--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 b423c43d27..068a784b3d 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -41,6 +41,7 @@ if (DAWN_FETCH_DEPENDENCIES)
     )
 endif ()
 
+if(0)
 set(ABSL_ROOT_DIR ${DAWN_ABSEIL_DIR})
 if (NOT TARGET absl::strings)
     # Recommended setting for compatibility with future abseil releases.
@@ -62,6 +63,7 @@ if (NOT TARGET absl::strings)
 
     add_subdirectory(${DAWN_ABSEIL_DIR} "${CMAKE_CURRENT_BINARY_DIR}/abseil")
 endif()
+endif()
 
 if (DAWN_BUILD_PROTOBUF AND EXISTS "${DAWN_PROTOBUF_DIR}/cmake")
     if (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") AND WIN32)
@@ -175,10 +177,12 @@ endif()
 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")
+    find_path(EGL_REGISTRY_INCLUDE_DIRS "EGL/egl.h")
+    target_sources(dawn_khronos_platform INTERFACE "${EGL_REGISTRY_INCLUDE_DIRS}/KHR/khrplatform.h")
+    target_include_directories(dawn_khronos_platform INTERFACE "${EGL_REGISTRY_INCLUDE_DIRS}")
 endif()
 
+if (0)
 if (NOT TARGET Vulkan::Headers AND DAWN_ENABLE_VULKAN)
     message(STATUS "Dawn: using Vulkan::Headers at ${DAWN_VULKAN_HEADERS_DIR}")
 
@@ -190,6 +194,7 @@ if (NOT TARGET Vulkan::UtilityHeaders AND DAWN_ENABLE_VULKAN)
     message(STATUS "Dawn: using VulkanUtilityLibraries at ${DAWN_VULKAN_UTILITY_LIBRARIES_DIR}")
     add_subdirectory(${DAWN_VULKAN_UTILITY_LIBRARIES_DIR} "${CMAKE_CURRENT_BINARY_DIR}/vulkan-utility-libraries/src")
 endif()
+endif()
 
 if (DAWN_ENABLE_SWIFTSHADER AND NOT TARGET vk_swiftshader)
     set(SWIFTSHADER_BUILD_TESTS OFF CACHE BOOL "" FORCE)