From 58054d05726c1ac25d2077d66cb67b7b3c140519 Mon Sep 17 00:00:00 2001 From: friendlyanon <1736896+friendlyanon@users.noreply.github.com> Date: Wed, 4 Jan 2023 23:41:32 +0100 Subject: [PATCH] [angle] Improve UX for unofficial CMake package (#28547) * [angle] Propagate transitive dependencies * [angle] Add usage info for unofficial CMake targets Only the unofficial::angle::libGLESv2 and unofficial::angle::libEGL targets are meant to be used, because they are the targets that no other depends on. Co-authored-by: friendlyanon --- ports/angle/CMakeLists.txt | 3 ++- ports/angle/portfile.cmake | 1 + ports/angle/unofficial-angle-config.cmake | 7 +++++++ ports/angle/usage | 8 ++++++++ ports/angle/vcpkg.json | 3 ++- versions/a-/angle.json | 5 +++++ versions/baseline.json | 2 +- 7 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 ports/angle/unofficial-angle-config.cmake create mode 100644 ports/angle/usage diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index febe509510..257e1eaee8 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -742,7 +742,8 @@ else() ) endif() -install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) +install(EXPORT ANGLEExport FILE unofficial-angle-targets.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) +install(FILES unofficial-angle-config.cmake DESTINATION share/unofficial-angle) if(NOT DISABLE_INSTALL_HEADERS) install( diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index df39e01973..885e8b4454 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -28,6 +28,7 @@ vcpkg_from_github( ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-angle-config.cmake" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/angle_commit.h" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/angle_commit.h" DESTINATION "${SOURCE_PATH}/src/common") diff --git a/ports/angle/unofficial-angle-config.cmake b/ports/angle/unofficial-angle-config.cmake new file mode 100644 index 0000000000..79abf89d78 --- /dev/null +++ b/ports/angle/unofficial-angle-config.cmake @@ -0,0 +1,7 @@ +include(CMakeFindDependencyMacro) +find_dependency(ZLIB) +if(UNIX AND NOT APPLE) + find_dependency(X11 COMPONENTS Xext Xi) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-angle-targets.cmake") diff --git a/ports/angle/usage b/ports/angle/usage new file mode 100644 index 0000000000..b1fdc146a1 --- /dev/null +++ b/ports/angle/usage @@ -0,0 +1,8 @@ +The package angle provides unofficial CMake targets: + + find_package(unofficial-angle REQUIRED CONFIG) + target_link_libraries(main PRIVATE unofficial::angle::libGLESv2) + + # Or use the EGL target + find_package(unofficial-angle REQUIRED CONFIG) + target_link_libraries(main PRIVATE unofficial::angle::libEGL) diff --git a/ports/angle/vcpkg.json b/ports/angle/vcpkg.json index 144b4956ce..83ace497b8 100644 --- a/ports/angle/vcpkg.json +++ b/ports/angle/vcpkg.json @@ -1,12 +1,13 @@ { "name": "angle", "version-string": "chromium_4472", - "port-version": 6, + "port-version": 7, "description": [ "A conformant OpenGL ES implementation for Windows, Mac and Linux.", "The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support." ], "homepage": "https://github.com/google/angle", + "license": "BSD-3-Clause", "dependencies": [ "egl-registry", { diff --git a/versions/a-/angle.json b/versions/a-/angle.json index 5977dc6ce0..52c710a227 100644 --- a/versions/a-/angle.json +++ b/versions/a-/angle.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "96213b303b5b0804d7c8e9b6b94aa3cd3cc90660", + "version-string": "chromium_4472", + "port-version": 7 + }, { "git-tree": "d48bbcf1eba07a4156e745140be81caff95b8757", "version-string": "chromium_4472", diff --git a/versions/baseline.json b/versions/baseline.json index ed90991303..32061c2381 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -106,7 +106,7 @@ }, "angle": { "baseline": "chromium_4472", - "port-version": 6 + "port-version": 7 }, "antlr4": { "baseline": "4.11.1",