Subject: [bug#69461] [mesa-updates 05/13] gnu: shaderc: Update to 2023.8.

From: dan <[email-masked]>
Date: Thu, 29 Feb 2024 01:31:38 +0800

* gnu/packages/vulkan.scm (shaderc): Update to 2023.8.
  [arguments]<#:configure-flags>: Specify python executable.
  <#:phases>: Remove drop-additional-glslang-deps phase.
  [inputs]: Remove python.
  [native-inputs]: Add python.

Change-Id: I1babcabf0be17c6a6237d30fad9b8dcd7a2d2ccf
---
 gnu/packages/vulkan.scm | 77 +++++++++++++++++++----------------------
 1 file changed, 35 insertions(+), 42 deletions(-)

diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 12baf52f92..38f723bd91 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -355,7 +355,7 @@ (define-public shaderc
   (package
     (name "shaderc")
     ;; shaderc doesn't follow the versioning scheme of vulkan sdk
-    (version "2022.3")
+    (version "2023.8")
     (source
      (origin
        (method git-fetch)
@@ -364,53 +364,46 @@ (define-public shaderc
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0sdbfi66zmqj0c5q5yv2zvcvry7557yzgxk2mwflyjgqh7kdhb8d"))))
+        (base32 "0cs36p1y2269gjfv75fvs43ymsapmc8gsy2n91jnaqs3mpgqkjbk"))))
     (build-system cmake-build-system)
     (arguments
      `(;; FIXME: Skip most of the tests, because enabling system gtest breaks
        ;; the build: <https://github.com/google/shaderc/issues/470>.
-       #:configure-flags
-       (list "-DSHADERC_SKIP_TESTS=ON"
-             ;; Note: despite the name, this just specifies the headers.
-             (string-append "-Dglslang_SOURCE_DIR="
-                            (assoc-ref %build-inputs "glslang") "/include/glslang"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'do-not-look-for-bundled-sources
-           (lambda _
-             (substitute* "CMakeLists.txt"
-               (("add_subdirectory\\(third_party\\)")
-                ""))
+       #:configure-flags (list "-DSHADERC_SKIP_TESTS=ON"
+                               ;; These two flags are copied from:
+                               ;; https://sdk.lunarg.com/sdk/download/1.3.275.0/linux/config.json
+                               "-DSHADERC_ENABLE_SHARED_CRT=ON"
+                               "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
+                               "-DPYTHON_EXECUTABLE=python3"
+                               ;; Note: despite the name, this just specifies the headers.
+                               (string-append "-Dglslang_SOURCE_DIR="
+                                              (assoc-ref %build-inputs
+                                                         "glslang")
+                                              "/include/glslang"))
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'do-not-look-for-bundled-sources
+                    (lambda _
+                      (substitute* "CMakeLists.txt"
+                        (("add_subdirectory\\(third_party\\)")
+                         ""))
 
-             (substitute* "glslc/test/CMakeLists.txt"
-               (("\\$<TARGET_FILE:spirv-dis>")
-                (which "spirv-dis")))
+                      (substitute* "glslc/test/CMakeLists.txt"
+                        (("\\$<TARGET_FILE:spirv-dis>")
+                         (which "spirv-dis")))
 
-             ;; Do not attempt to use git to encode version information.
-             (substitute* "glslc/CMakeLists.txt"
-               (("add_dependencies\\(glslc_exe build-version\\)")
-                ""))
-             (call-with-output-file "glslc/src/build-version.inc"
-               (lambda (port)
-                 (format port "\"~a\"\n\"~a\"\n\"~a\"~%"
-                         ,version
-                         ,(package-version spirv-tools)
-                         ,(package-version glslang))))
-             #t))
-         ;; see: https://github.com/google/shaderc/pull/1276
-         (add-after 'do-not-look-for-bundled-sources 'drop-additional-glslang-deps
-           (lambda _
-             (substitute* "glslc/CMakeLists.txt"
-               (("OSDependent OGLCompiler") ""))
-             (substitute* "libshaderc/CMakeLists.txt"
-               (("OSDependent OGLCompiler") ""))
-             (substitute* "libshaderc_util/CMakeLists.txt"
-               (("OSDependent OGLCompiler") "")))))))
-    (inputs
-     (list glslang python spirv-headers spirv-tools))
-    (native-inputs
-     (list pkg-config))
+                      ;; Do not attempt to use git to encode version information.
+                      (substitute* "glslc/CMakeLists.txt"
+                        (("add_dependencies\\(glslc_exe build-version\\)")
+                         ""))
+                      (call-with-output-file "glslc/src/build-version.inc"
+                        (lambda (port)
+                          (format port "\"~a\"\n\"~a\"\n\"~a\"~%"
+                                  ,version
+                                  ,(package-version spirv-tools)
+                                  ,(package-version glslang))))
+                      #t)))))
+    (inputs (list glslang spirv-headers spirv-tools))
+    (native-inputs (list pkg-config python))
     (home-page "https://github.com/google/shaderc")
     (synopsis "Tools for shader compilation")
     (description "Shaderc is a collection of tools, libraries, and tests for
-- 
2.41.0