<pre style='margin:0'>
Vadym-Valdis Yudaiev (judaew) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3768ad2fccc3758c6d442d4a4d8247ba9d74cba4">https://github.com/macports/macports-ports/commit/3768ad2fccc3758c6d442d4a4d8247ba9d74cba4</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 3768ad2fccc3758c6d442d4a4d8247ba9d74cba4
</span>Author: christophecvr <stefansat@proximus.be>
AuthorDate: Fri Oct 18 20:29:56 2024 +0200
<span style='display:block; white-space:pre;color:#404040;'> shaderc: New Port. Adds glslc binary
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/71081
</span>---
graphics/shaderc/Portfile | 83 +++++++++
.../shaderc/files/use-installed-spirv-tools.patch | 192 +++++++++++++++++++++
2 files changed, 275 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/shaderc/Portfile b/graphics/shaderc/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..39735840c45
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/shaderc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,83 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version v2024.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup google shaderc ${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories graphics devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license Apache Version-2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {christophecvr @christophecvr} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description A collection of tools, libraries and tests for shader compilation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description At the moment it includes: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ glslc, a command line compiler for GLSL/HLSL to SPIR-V, and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libshaderc, a library API for accessing glslc functionality.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://github.com/google/shaderc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums shaderc-v2024.3.tar.gz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 28cc1e3a47f74c37897ea49e632273dccc722617 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e8fe28d01b7f9100118bc99f7421a1022d5bed3280c8ce50644d8462da649581 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 227486 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ glslang-467ce01c71e38cf01814c48987a5c0dadd914df4.tar.gz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 7e5baff3f43db294a222d1c57f85ed10c99e8bcb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 390764c4df4e17c7831af747e58ceac80945f1750238b623ffaaa73538ccac4c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 3871722
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver 3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver_nodot [string map {. {}} ${py_ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Need to use MacPorts libc++ on macOS 10.14 Mojave and older, because
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Apple Clang only added support for the C++17 <filesystem> library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# starting in Xcode 11 (clang-1100) for macOS 10.15+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# References:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# * https://stackoverflow.com/a/55353263
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# * https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.newest_darwin_requires_legacy 18
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.use_mp_libcxx yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Patching source to use Already installed SPIRV-Tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles use-installed-spirv-tools.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append port:spirv-headers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:asciidoctor \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:bin/pkg-config:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:glslang \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:spirv-tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append port:python${py_ver_nodot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.python ${prefix}/bin/python${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DPYTHON_EXECUTABLE:FILEPATH=${configure.python}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Only glslang is build to build shaderc glslang is not installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Using installed SPIRV-Tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set submodules {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ KhronosGroup glslang 467ce01c71e38cf01814c48987a5c0dadd914df4 third_party/glslang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach {sub_author sub_project sub_commit sub_dest} ${submodules} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ master_sites-append https://github.com/${sub_author}/${sub_project}/archive/${sub_commit}.tar.gz?dummy=:${sub_project}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles-append ${sub_project}-${sub_commit}.tar.gz:${sub_project}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# FIXME : main module not extracted in worksrcpath with multiple download sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Move extracted main module to worksrcpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Move submodules to cmakes expected location in worksrcpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${workpath}/google-shaderc-7223dc3 ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach {sub_author sub_project sub_commit sub_dest} ${submodules} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${workpath}/${sub_project}-${sub_commit} ${worksrcpath}/${sub_dest}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DSHADERC_ENABLE_WERROR_COMPILE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DSHADERC_SKIP_TESTS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DUSE_EXTERNAL_SPIRV_TOOLS=ON
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/shaderc/files/use-installed-spirv-tools.patch b/graphics/shaderc/files/use-installed-spirv-tools.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a6757ec0f10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/shaderc/files/use-installed-spirv-tools.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,192 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig 2024-09-23 23:32:56.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2024-10-16 11:35:35.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +31,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(SHADERC_ENABLE_INSTALL ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++option(USE_EXTERNAL_SPIRV_TOOLS "Use external installed SPIRV-TOOLS" OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(USE_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set (ALLOW_EXTERNAL_SPIRV_TOOLS ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ message(STATUS "USING EXTERNAL INSTALLED SPIRV-Tools")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ option(SHADERC_SKIP_TESTS "Skip building tests" ${SHADERC_SKIP_TESTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(NOT ${SHADERC_SKIP_TESTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(SHADERC_ENABLE_TESTS ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -129,11 +135,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(examples)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-add_custom_target(build-version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ${Python_EXECUTABLE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT USE_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ add_custom_target(build-version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ${Python_EXECUTABLE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function(define_pkg_config_file NAME LIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_custom_target(${NAME}-pkg-config ALL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- third_party/CMakeLists.txt.orig 2024-09-23 23:32:56.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ third_party/CMakeLists.txt 2024-10-16 11:38:56.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set( SKIP_GOOGLETEST_INSTALL ${SHADERC_SKIP_INSTALL} )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set( SKIP_GLSLANG_INSTALL ${ALLOW_EXTERNAL_SPIRV_TOOLS} )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set( SKIP_SPIRV_TOOLS_INSTALL ${ALLOW_EXTERNAL_SPIRV_TOOLS} )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set( SKIP_GOOGLETEST_INSTALL ${ALLOW_EXTERNAL_SPIRV_TOOLS} )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (ALLOW_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set( INSTALL_GTEST OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Configure third party projects.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(${SHADERC_ENABLE_TESTS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (IS_DIRECTORY ${SHADERC_GOOGLE_TEST_DIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -43,51 +50,67 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(${SHADERC_SPIRV_HEADERS_DIR} spirv-headers)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (NOT TARGET SPIRV-Tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Check SPIRV-Tools before glslang so that it is linked into glslang.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # we control optimizations via glslang API calls directly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (IS_DIRECTORY ${SHADERC_SPIRV_TOOLS_DIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if ("${SHADERC_SKIP_TESTS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Also skip building tests in SPIRV-Tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (ALLOW_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (NOT TARGET SPIRV-Tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Look for external SPIR-V Tools build, if not stop build with error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ message(STATUS "Trying to find local SPIR-V tools")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ find_package(SPIRV-Tools-opt)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(NOT TARGET SPIRV-Tools-opt)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ message(FATAL_ERROR "Requested to use external installed SPIRV-Tools but they are NOT FOUND")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ message(STATUS "External SPIRV-Tools Found")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- elseif(NOT "${SPIRV_SKIP_TESTS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # SPIRV-Tools requires effcee, re2, and abseil to build tests.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # re2 depends on abseil, so abseil must be added first.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(ABSL_INTERNAL_AT_LEAST_CXX17 ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(ABSL_PROPAGATE_CXX_STD ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(ABSL_ENABLE_INSTALL ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- add_subdirectory(${SHADERC_ABSL_DIR} absl EXCLUDE_FROM_ALL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # re2 tests take a long time and do not add much value, since re2 is a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # dependency of a dependency, so not running them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(RE2_BUILD_TESTING OFF CACHE STRING "Run RE2 Tests")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- add_subdirectory(${SHADERC_RE2_DIR} re2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- add_subdirectory(${SHADERC_EFFCEE_DIR} effcee)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (NOT "${SPIRV_SKIP_TESTS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (${MSVC_VERSION} LESS 1920)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # VS 2017 requires /bigobj on test_opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # https://github.com/google/shaderc/issues/1345
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # https://github.com/KhronosGroup/SPIRV-Tools/issues/5335
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- target_compile_options(test_opt PRIVATE /bigobj)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (NOT TARGET SPIRV-Tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check SPIRV-Tools before glslang so that it is linked into glslang.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # we control optimizations via glslang API calls directly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (IS_DIRECTORY ${SHADERC_SPIRV_TOOLS_DIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ("${SHADERC_SKIP_TESTS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Also skip building tests in SPIRV-Tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ elseif(NOT "${SPIRV_SKIP_TESTS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # SPIRV-Tools requires effcee, re2, and abseil to build tests.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # re2 depends on abseil, so abseil must be added first.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(ABSL_INTERNAL_AT_LEAST_CXX17 ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(ABSL_PROPAGATE_CXX_STD ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(ABSL_ENABLE_INSTALL ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ add_subdirectory(${SHADERC_ABSL_DIR} absl EXCLUDE_FROM_ALL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # re2 tests take a long time and do not add much value, since re2 is a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # dependency of a dependency, so not running them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(RE2_BUILD_TESTING OFF CACHE STRING "Run RE2 Tests")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ add_subdirectory(${SHADERC_RE2_DIR} re2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ add_subdirectory(${SHADERC_EFFCEE_DIR} effcee)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (NOT "${SPIRV_SKIP_TESTS}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (${MSVC_VERSION} LESS 1920)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # VS 2017 requires /bigobj on test_opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # https://github.com/google/shaderc/issues/1345
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # https://github.com/KhronosGroup/SPIRV-Tools/issues/5335
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ target_compile_options(test_opt PRIVATE /bigobj)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (NOT TARGET SPIRV-Tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- message(FATAL_ERROR "SPIRV-Tools was not found - required for compilation")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (NOT TARGET SPIRV-Tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ message(FATAL_ERROR "SPIRV-Tools was not found - required for compilation")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (NOT TARGET glslang)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (IS_DIRECTORY ${SHADERC_GLSLANG_DIR})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (SHADERC_ENABLE_TESTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Glslang tests are off by default. Turn them on if testing Shaderc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(GLSLANG_TESTS ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(NOT ALLOW_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (SHADERC_ENABLE_TESTS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Glslang tests are off by default. Turn them on if testing Shaderc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(GLSLANG_TESTS ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(GLSLANG_ENABLE_INSTALL $<NOT:${SKIP_GLSLANG_INSTALL}>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(GLSLANG_ENABLE_INSTALL $<NOT:${SKIP_GLSLANG_INSTALL}>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(${SHADERC_GLSLANG_DIR} glslang)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (NOT TARGET glslang)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- glslc/CMakeLists.txt.orig 2024-09-23 23:32:56.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ glslc/CMakeLists.txt 2024-10-16 11:06:19.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,7 +53,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_include_directories(glslc_exe PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/.. ${spirv-tools_SOURCE_DIR}/include)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_target_properties(glslc_exe PROPERTIES OUTPUT_NAME glslc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_link_libraries(glslc_exe PRIVATE glslc shaderc_util shaderc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-add_dependencies(glslc_exe build-version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(USE_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ target_compile_definitions(glslc PUBLIC USE_EXTERNAL_SPIRV_TOOLS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ add_dependencies(glslc_exe build-version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ shaderc_add_tests(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TEST_PREFIX glslc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- glslc/src/main.cc.orig 2024-09-23 23:32:56.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ glslc/src/main.cc 2024-10-16 11:39:57.000000000 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -204,10 +204,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef USE_EXTERNAL_SPIRV_TOOLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char kBuildVersion[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "build-version.inc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Gets an optional stage name followed by required offset argument. Returns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // false and emits a message to *errs if any errors occur. After calling this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // function, *index will be the index of the last command line argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -293,7 +294,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef RESOURCE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (arg == "--version") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef USE_EXTERNAL_SPIRV_TOOLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::cout << kBuildVersion << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::cout << "Target: " << spvTargetEnvDescription(SPV_ENV_UNIVERSAL_1_0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ << std::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span></pre><pre style='margin:0'>
</pre>