From efd5cdaf1eaf2b3490d2c333d962a33078fba54b Mon Sep 17 00:00:00 2001 From: friendlyanon <1736896+friendlyanon@users.noreply.github.com> Date: Fri, 5 Jul 2024 19:45:48 +0200 Subject: [PATCH] [glslang] Fix `tools` feature installation (#39677) Co-authored-by: friendlyanon --- ...01-Fix-glslangValidator-installation.patch | 57 +++++++++++++++++++ ports/glslang/portfile.cmake | 10 ++-- ports/glslang/vcpkg.json | 1 + versions/baseline.json | 2 +- versions/g-/glslang.json | 5 ++ 5 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 ports/glslang/0001-Fix-glslangValidator-installation.patch diff --git a/ports/glslang/0001-Fix-glslangValidator-installation.patch b/ports/glslang/0001-Fix-glslangValidator-installation.patch new file mode 100644 index 0000000000..df1c000b32 --- /dev/null +++ b/ports/glslang/0001-Fix-glslangValidator-installation.patch @@ -0,0 +1,57 @@ +From 3992259996aee72a65b99a0731584b2d69fcf32e Mon Sep 17 00:00:00 2001 +From: friendlyanon +Date: Tue, 2 Jul 2024 19:55:24 +0200 +Subject: [PATCH] Fix `glslangValidator` installation + +This caused the glslang[tools] vcpkg feature to not install properly, +because the glslangValidator executable didn't exist for tool +installation. +--- + StandAlone/CMakeLists.txt | 25 ++++++++++++++++--------- + 1 file changed, 16 insertions(+), 9 deletions(-) + +diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt +index e0fdb487..9ecdcd23 100644 +--- a/StandAlone/CMakeLists.txt ++++ b/StandAlone/CMakeLists.txt +@@ -90,21 +90,28 @@ endif() + # Create a symbolic link to glslang named glslangValidator for backwards compatibility + set(legacy_glslang_name "glslangValidator${CMAKE_EXECUTABLE_SUFFIX}") + set(link_method create_symlink) +-if (WIN32 OR MINGW) +-set(link_method copy_if_different) ++if(WIN32 OR MINGW) ++ set(link_method copy_if_different) + endif() +-add_custom_command(TARGET glslang-standalone +- POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E ${link_method} $ ${legacy_glslang_name} +- WORKING_DIRECTORY $) ++ ++add_custom_command( ++ TARGET glslang-standalone POST_BUILD ++ COMMAND "${CMAKE_COMMAND}" -E "${link_method}" "\$" "${legacy_glslang_name}" ++ WORKING_DIRECTORY "\$" ++ VERBATIM ++) + + if(GLSLANG_ENABLE_INSTALL) + install(TARGETS glslang-standalone EXPORT glslang-targets) + + # Create the same symlink at install time +- install(CODE "execute_process( \ +- COMMAND ${CMAKE_COMMAND} -E ${link_method} $ ${legacy_glslang_name} \ +- WORKING_DIRECTORY \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})") ++ install(CODE "\ ++ message(STATUS \"Installing (${link_method}): \$ -> \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}\") ++ execute_process( ++ COMMAND \"\${CMAKE_COMMAND}\" -E ${link_method} [=[\$]=] [=[${legacy_glslang_name}]=] ++ WORKING_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}\" ++ ) ++ ") + + if(ENABLE_SPVREMAPPER) + install(TARGETS spirv-remap EXPORT glslang-targets) +-- +2.29.1.windows.1 + diff --git a/ports/glslang/portfile.cmake b/ports/glslang/portfile.cmake index 3f2f620c71..a913e38a73 100644 --- a/ports/glslang/portfile.cmake +++ b/ports/glslang/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF "${VERSION}" SHA512 570d2ff15116f48e195c73d9be1517b05e7c37541af10f6c05779a001e2d0295725349c1f4dd0bcca6f0c7e7e48c5162a60726c3e76cf04619c8e14bd0636ab6 HEAD_REF master + PATCHES + 0001-Fix-glslangValidator-installation.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS @@ -16,11 +18,11 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS rtti ENABLE_RTTI ) -if (ENABLE_GLSLANG_BINARIES) +if(ENABLE_GLSLANG_BINARIES) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path("${PYTHON_PATH}") -endif () +endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" @@ -45,9 +47,9 @@ endif() vcpkg_copy_pdbs() -if (ENABLE_GLSLANG_BINARIES) +if(ENABLE_GLSLANG_BINARIES) vcpkg_copy_tools(TOOL_NAMES glslang glslangValidator spirv-remap AUTO_CLEAN) -endif () +endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") diff --git a/ports/glslang/vcpkg.json b/ports/glslang/vcpkg.json index 4515d97057..a4d8bf2d76 100644 --- a/ports/glslang/vcpkg.json +++ b/ports/glslang/vcpkg.json @@ -1,6 +1,7 @@ { "name": "glslang", "version": "14.2.0", + "port-version": 1, "description": "Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.", "homepage": "https://github.com/KhronosGroup/glslang", "license": "Apache-2.0 AND BSD-3-Clause AND MIT AND GPL-3.0-or-later", diff --git a/versions/baseline.json b/versions/baseline.json index fe419655fa..4f3b395b83 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3118,7 +3118,7 @@ }, "glslang": { "baseline": "14.2.0", - "port-version": 0 + "port-version": 1 }, "glui": { "baseline": "2019-11-30", diff --git a/versions/g-/glslang.json b/versions/g-/glslang.json index f76a0b55d5..9a29859d55 100644 --- a/versions/g-/glslang.json +++ b/versions/g-/glslang.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "30ffabc3f5451d8cdd54ca141f9c231d64bb36ae", + "version": "14.2.0", + "port-version": 1 + }, { "git-tree": "0af162a02e91b107148e1462bde87b8c4a7f6863", "version": "14.2.0",