guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: gnu: Add shaderc.


From: Rutger Helling
Subject: 01/02: gnu: Add shaderc.
Date: Wed, 14 Feb 2018 02:20:30 -0500 (EST)

rhelling pushed a commit to branch core-updates
in repository guix.

commit 5b69baf0ad3ec124e618810677c129c7d56818c8
Author: Rutger Helling <address@hidden>
Date:   Wed Jan 31 15:26:18 2018 +0100

    gnu: Add shaderc.
    
    * gnu/packages/vulkan.scm (shaderc): New variable.
---
 gnu/packages/vulkan.scm | 78 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 183d42f..4185064 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -22,8 +22,10 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages pkg-config)
@@ -194,3 +196,79 @@ and the ICD.")
     (license (list license:asl2.0       ;LICENSE.txt
                    (license:x11-style "file://COPYRIGHT.txt")
                    license:bsd-3))))
+
+(define-public shaderc
+  (let ((commit "773ec22d49f40b7161820f29d953be4a7e40190d")
+        (revision "1"))
+    (package
+     (name "shaderc")
+     (version (string-append "0.0-" revision "." (string-take commit 9)))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/google/shaderc";)
+             (commit commit)))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0b41inb1czxv3mciip0lfdxv19ccx2ys31fivfywjn2q8va1gd1f"))))
+     (build-system meson-build-system)
+     (arguments
+      `(#:tests? #f ;; Tests don't work yet.
+        #:phases
+        (modify-phases %standard-phases
+          (replace 'configure
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let ((out (assoc-ref outputs "out")))
+                     ;; Remove various lines and touch build-version.inc or
+                     ;; configuring won't work.
+                     (invoke "touch" "glslc/src/build-version.inc")
+                     (substitute* "CMakeLists.txt" (("..PYTHON_EXE..*") ""))
+                     (substitute* "CMakeLists.txt"
+                                  ((".*update_build_version.py..*") ""))
+                     (substitute* "CMakeLists.txt"
+                                  ((".*add_custom_target.build-version.*") ""))
+                     (substitute* "CMakeLists.txt"
+                                  
((".*spirv-tools_SOURCE_DIR.*glslang_SOURCE_DIR.*")
+                                   ""))
+                     (substitute* "CMakeLists.txt"
+                                  ((".*Update build-version.inc.*") ""))
+                     (substitute* "CMakeLists.txt" ((".*--check.*") ""))
+                     (substitute* "glslc/src/main.cc" 
((".*build-version.inc.*")
+                                                       "\"1\""))
+                     (invoke "cmake" "-GNinja" "-DCMAKE_BUILD_TYPE=Release"
+                                     "-DSHADERC_SKIP_TESTS=ON"
+                                     "-DCMAKE_INSTALL_LIBDIR=lib"
+                                     (string-append "-DCMAKE_INSTALL_PREFIX="
+                                                    out)))))
+          (add-after 'unpack 'unpack-sources
+                     (lambda* (#:key inputs #:allow-other-keys)
+                       (let ((spirv-tools-source (assoc-ref %build-inputs
+                                                            
"spirv-tools-source"))
+                             (spirv-headers-source (assoc-ref %build-inputs
+                                                              
"spirv-headers-source"))
+                             (glslang-source (assoc-ref %build-inputs
+                                                        "glslang-source")))
+                         (mkdir-p "third-party/spirv-tools")
+                         (copy-recursively spirv-tools-source
+                                           "third_party/spirv-tools")
+                         (mkdir-p 
"third-party/spirv-tools/external/spirv-headers")
+                         (copy-recursively spirv-headers-source
+                                           (string-append 
"third_party/spirv-tools"
+                                                          
"/external/spirv-headers"))
+                         (mkdir-p "third-party/glslang")
+                         (copy-recursively glslang-source
+                                           "third_party/glslang")
+                         #t))))))
+     (inputs `(("python" ,python)))
+     (native-inputs `(("cmake" ,cmake)
+                      ("glslang-source", (package-source glslang))
+                      ("pkg-config", pkg-config)
+                      ("spirv-headers-source", (package-source spirv-headers))
+                      ("spirv-tools-source", (package-source spirv-tools))))
+     (home-page "https://github.com/google/shaderc";)
+     (synopsis "Tools for shader compilation")
+     (description "Shaderc is a collection of tools, libraries and tests for
+shader compilation.")
+     (license license:asl2.0))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]