diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/dawn/004-deps.patch | |
Diffstat (limited to 'vcpkg/ports/dawn/004-deps.patch')
| -rw-r--r-- | vcpkg/ports/dawn/004-deps.patch | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/vcpkg/ports/dawn/004-deps.patch b/vcpkg/ports/dawn/004-deps.patch new file mode 100644 index 0000000..9a65efd --- /dev/null +++ b/vcpkg/ports/dawn/004-deps.patch @@ -0,0 +1,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) |