From 0a64f3a1f6868f70cfbee038c2646d10085d0caf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Ga=C3=9Fmann?= Date: Fri, 20 Mar 2020 08:32:07 +0100 Subject: [PATCH] [spirv-tools] Update to version 2020.1 (#10441) * [spirv-headers] Update to version 1.5.1 * [spirv-tools] Update to version 2020.1 * [spirv-tools] Work around an import config typo * [spirv-tools] Fix nitpicks * [spirv-headers] Modernize port * [spirv-tools] Fix directory name capitalization mismatch --- ports/spirv-headers/CONTROL | 3 +- ports/spirv-headers/portfile.cmake | 12 +-- ports/spirv-tools/CMake-targets.patch | 91 --------------------- ports/spirv-tools/CONTROL | 2 +- ports/spirv-tools/cmake-install.patch | 36 ++++++++ ports/spirv-tools/comment-distutils.patch | 14 ++-- ports/spirv-tools/install-config-typo.patch | 17 ++++ ports/spirv-tools/portfile.cmake | 30 +++---- 8 files changed, 82 insertions(+), 123 deletions(-) delete mode 100644 ports/spirv-tools/CMake-targets.patch create mode 100644 ports/spirv-tools/cmake-install.patch create mode 100644 ports/spirv-tools/install-config-typo.patch diff --git a/ports/spirv-headers/CONTROL b/ports/spirv-headers/CONTROL index be9ef4392..8a6051d13 100644 --- a/ports/spirv-headers/CONTROL +++ b/ports/spirv-headers/CONTROL @@ -1,3 +1,4 @@ Source: spirv-headers -Version: 2019-05-05 +Version: 1.5.1 +Homepage: https://github.com/KhronosGroup/SPIRV-Headers Description: Machine-readable files for the SPIR-V Registry diff --git a/ports/spirv-headers/portfile.cmake b/ports/spirv-headers/portfile.cmake index e5191639d..d94e16484 100644 --- a/ports/spirv-headers/portfile.cmake +++ b/ports/spirv-headers/portfile.cmake @@ -1,18 +1,14 @@ -# header-only library -include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/SPIRV-Headers - REF c4f8f65792d4bf2657ca751904c511bbcf2ac77b - SHA512 750af53a70f6f890657735ab0e2db5ae3dd8d612480efc2247753993752f687e22a0bdd65296c5751daf284604fe3dc9ee0a94feae88761a0e64adc64e6d17a4 + REF 1.5.1.corrected + SHA512 92447b1b1eca6f0253265f36d67b00c0c79e93f6a707e27bd8239bd2f693c468a92b7f7c3bb3fde6bb091383baaff42d3b0bbfeb9ff5f952d8a0b9626b03848e HEAD_REF master ) # This must be spirv as other spirv packages expect it there. -# Copy header files -file(COPY ${SOURCE_PATH}/include/spirv/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/spirv) +file(COPY "${SOURCE_PATH}/include/spirv/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/spirv") # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/spirv-headers) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/spirv-headers/LICENSE ${CURRENT_PACKAGES_DIR}/share/spirv-headers/copyright) +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/spirv-tools/CMake-targets.patch b/ports/spirv-tools/CMake-targets.patch deleted file mode 100644 index d3870f8c8..000000000 --- a/ports/spirv-tools/CMake-targets.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt -index 1f96018..c9a3758 100644 ---- a/source/CMakeLists.txt -+++ b/source/CMakeLists.txt -@@ -337,7 +337,7 @@ spvtools_pch(SPIRV_SOURCES pch_source) - add_library(${SPIRV_TOOLS} ${SPIRV_SOURCES}) - spvtools_default_compile_options(${SPIRV_TOOLS}) - target_include_directories(${SPIRV_TOOLS} -- PUBLIC ${spirv-tools_SOURCE_DIR}/include -+ PUBLIC "$" - PRIVATE ${spirv-tools_BINARY_DIR} - PRIVATE ${SPIRV_HEADER_INCLUDE_DIR} - ) -@@ -370,10 +370,20 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - endif() - - if(ENABLE_SPIRV_TOOLS_INSTALL) -- install(TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared -+ install(TARGETS ${SPIRV_TOOLS} EXPORT spirv-tools-config - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ export( -+ TARGETS ${SPIRV_TOOLS} -+ NAMESPACE spirv-tools:: -+ FILE "${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-config.cmake" -+ ) -+ install( -+ EXPORT spirv-tools-config -+ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/spirv-tools" -+ NAMESPACE spirv-tools:: -+ ) - endif(ENABLE_SPIRV_TOOLS_INSTALL) - - if(MSVC) -diff --git a/source/link/CMakeLists.txt b/source/link/CMakeLists.txt -index 8ca4df3..ac0aa62 100644 ---- a/source/link/CMakeLists.txt -+++ b/source/link/CMakeLists.txt -@@ -17,7 +17,7 @@ add_library(SPIRV-Tools-link - - spvtools_default_compile_options(SPIRV-Tools-link) - target_include_directories(SPIRV-Tools-link -- PUBLIC ${spirv-tools_SOURCE_DIR}/include -+ PUBLIC "$" - PUBLIC ${SPIRV_HEADER_INCLUDE_DIR} - PRIVATE ${spirv-tools_BINARY_DIR} - ) -@@ -29,8 +29,13 @@ set_property(TARGET SPIRV-Tools-link PROPERTY FOLDER "SPIRV-Tools libraries") - spvtools_check_symbol_exports(SPIRV-Tools-link) - - if(ENABLE_SPIRV_TOOLS_INSTALL) -- install(TARGETS SPIRV-Tools-link -+ install(TARGETS SPIRV-Tools-link EXPORT spirv-tools-config - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ export( -+ TARGETS ${SPIRV_TOOLS}-link -+ NAMESPACE spirv-tools:: -+ FILE "${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-link-config.cmake" -+ ) - endif(ENABLE_SPIRV_TOOLS_INSTALL) -diff --git a/source/opt/CMakeLists.txt b/source/opt/CMakeLists.txt -index b02485a..111ce3c 100644 ---- a/source/opt/CMakeLists.txt -+++ b/source/opt/CMakeLists.txt -@@ -221,7 +221,7 @@ add_library(SPIRV-Tools-opt ${SPIRV_TOOLS_OPT_SOURCES}) - - spvtools_default_compile_options(SPIRV-Tools-opt) - target_include_directories(SPIRV-Tools-opt -- PUBLIC ${spirv-tools_SOURCE_DIR}/include -+ PUBLIC "$" - PUBLIC ${SPIRV_HEADER_INCLUDE_DIR} - PRIVATE ${spirv-tools_BINARY_DIR} - ) -@@ -233,8 +233,13 @@ set_property(TARGET SPIRV-Tools-opt PROPERTY FOLDER "SPIRV-Tools libraries") - spvtools_check_symbol_exports(SPIRV-Tools-opt) - - if(ENABLE_SPIRV_TOOLS_INSTALL) -- install(TARGETS SPIRV-Tools-opt -+ install(TARGETS SPIRV-Tools-opt EXPORT spirv-tools-config - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ export( -+ TARGETS ${SPIRV_TOOLS}-opt -+ NAMESPACE spirv-tools:: -+ FILE "${CMAKE_CURRENT_BINARY_DIR}/spirv-tools-opt-config.cmake" -+ ) - endif(ENABLE_SPIRV_TOOLS_INSTALL) diff --git a/ports/spirv-tools/CONTROL b/ports/spirv-tools/CONTROL index 154783ca2..a075b87c5 100644 --- a/ports/spirv-tools/CONTROL +++ b/ports/spirv-tools/CONTROL @@ -1,5 +1,5 @@ Source: spirv-tools -Version: 2019.3-dev-1 +Version: 2020.1 Homepage: https://github.com/KhronosGroup/SPIRV-Tools Description: API and commands for processing SPIR-V modules Build-Depends: spirv-headers \ No newline at end of file diff --git a/ports/spirv-tools/cmake-install.patch b/ports/spirv-tools/cmake-install.patch new file mode 100644 index 000000000..ce5992c89 --- /dev/null +++ b/ports/spirv-tools/cmake-install.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6ed56a8..66d1e66 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -210,15 +210,9 @@ else() + endif() + + if(ENABLE_SPIRV_TOOLS_INSTALL) +- if(WIN32) +- macro(spvtools_config_package_dir TARGET PATH) +- set(${PATH} ${TARGET}/cmake) +- endmacro() +- else() +- macro(spvtools_config_package_dir TARGET PATH) +- set(${PATH} ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET}) +- endmacro() +- endif() ++ macro(spvtools_config_package_dir TARGET PATH) ++ set(${PATH} ${CMAKE_INSTALL_DATADIR}/${TARGET}) ++ endmacro() + + macro(spvtools_generate_config_file TARGET) + file(WRITE ${CMAKE_BINARY_DIR}/${TARGET}Config.cmake +diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt +index 4e7e10c..278e439 100644 +--- a/source/CMakeLists.txt ++++ b/source/CMakeLists.txt +@@ -387,7 +387,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + endif() + + if(ENABLE_SPIRV_TOOLS_INSTALL) +- install(TARGETS ${SPIRV_TOOLS} ${SPIRV_TOOLS}-shared EXPORT ${SPIRV_TOOLS}Targets ++ install(TARGETS ${SPIRV_TOOLS} EXPORT ${SPIRV_TOOLS}Targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/ports/spirv-tools/comment-distutils.patch b/ports/spirv-tools/comment-distutils.patch index 2426f82ba..1ec4e9dcb 100644 --- a/ports/spirv-tools/comment-distutils.patch +++ b/ports/spirv-tools/comment-distutils.patch @@ -1,22 +1,22 @@ diff --git a/utils/generate_registry_tables.py b/utils/generate_registry_tables.py -index 8b1c3572..6ab28fe6 100644 +index e662ba9..49f2718 100644 --- a/utils/generate_registry_tables.py +++ b/utils/generate_registry_tables.py -@@ -16,7 +16,7 @@ - - from __future__ import print_function +@@ -14,7 +14,7 @@ + # limitations under the License. + """Generates the vendor tool table from the SPIR-V XML registry.""" -import distutils.dir_util +#import distutils.dir_util import os.path import xml.etree.ElementTree -@@ -64,7 +64,7 @@ def main(): +@@ -62,7 +62,7 @@ def main(): with open(args.xml) as xml_in: registry = xml.etree.ElementTree.fromstring(xml_in.read()) - distutils.dir_util.mkpath(os.path.dirname(args.generator_output)) + #distutils.dir_util.mkpath(os.path.dirname(args.generator_output)) - print(generate_vendor_table(registry), file=open(args.generator_output, 'w')) - + with open(args.generator_output, 'w') as f: + f.write(generate_vendor_table(registry)) diff --git a/ports/spirv-tools/install-config-typo.patch b/ports/spirv-tools/install-config-typo.patch new file mode 100644 index 000000000..c356f4b52 --- /dev/null +++ b/ports/spirv-tools/install-config-typo.patch @@ -0,0 +1,17 @@ +diff --git a/source/reduce/CMakeLists.txt b/source/reduce/CMakeLists.txt +index 51e9b1d..90b1cb7 100644 +--- a/source/reduce/CMakeLists.txt ++++ b/source/reduce/CMakeLists.txt +@@ -96,10 +96,10 @@ if(ENABLE_SPIRV_TOOLS_INSTALL) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +- export(EXPORT SPIRV-Tools-reduceTargets FILE SPIRV-Tools-reduceTarget.cmake) ++ export(EXPORT SPIRV-Tools-reduceTargets FILE SPIRV-Tools-reduceTargets.cmake) + + spvtools_config_package_dir(SPIRV-Tools-reduce PACKAGE_DIR) +- install(EXPORT SPIRV-Tools-reduceTargets FILE SPIRV-Tools-reduceTarget.cmake ++ install(EXPORT SPIRV-Tools-reduceTargets FILE SPIRV-Tools-reduceTargets.cmake + DESTINATION ${PACKAGE_DIR}) + + spvtools_generate_config_file(SPIRV-Tools-reduce) diff --git a/ports/spirv-tools/portfile.cmake b/ports/spirv-tools/portfile.cmake index 59cf97591..4741a206f 100644 --- a/ports/spirv-tools/portfile.cmake +++ b/ports/spirv-tools/portfile.cmake @@ -1,15 +1,15 @@ -include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/SPIRV-Tools - REF d0a1f5a05a2b0f8315e5b3f17b8e34c730861b31 - SHA512 7179751b0216368b4a4bf8c9b0c1c1e3b17d6aa4788b4aeaa7fbb2b6d9d50b34cf209082f3531a2e0994b5fc02416373666d4d12cee282cec2c3d02c13a640a8 + REF v2020.1 + SHA512 edd434e06cba44c402900684b8fea16c394f80951ff993b3962617a21630d2d8ff9be9a5203bc8eb9b402e9cafe8c68f13099cbc1eaf66a546df08cb43668c46 PATCHES comment-distutils.patch - CMake-targets.patch + cmake-install.patch + install-config-typo.patch ) vcpkg_find_acquire_program(PYTHON3) @@ -22,19 +22,19 @@ vcpkg_configure_cmake( OPTIONS -DSPIRV-Headers_SOURCE_DIR=${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET} -DSPIRV_WERROR=OFF + -DENABLE_SPIRV_TOOLS_INSTALL=ON ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/SPIRV-Tools TARGET_PATH share/SPIRV-Tools) # the directory name is capitalized as opposed to the package name +vcpkg_fixup_cmake_targets(CONFIG_PATH share/SPIRV-Tools-link TARGET_PATH share/SPIRV-Tools-link) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/SPIRV-Tools-opt TARGET_PATH share/SPIRV-Tools-opt) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/SPIRV-Tools-reduce TARGET_PATH share/SPIRV-Tools-reduce) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*${CMAKE_EXECUTABLE_SUFFIX}") -file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools) -file(REMOVE ${EXES}) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") # only static linkage, i.e. no need to preserve .dll/.so files +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") +file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") +file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools/${PORT}") -# Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/spirv-tools) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/spirv-tools/LICENSE ${CURRENT_PACKAGES_DIR}/share/spirv-tools/copyright) - -vcpkg_test_cmake(PACKAGE_NAME spirv-tools) +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)