<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>