gnu: Add shaderc.
* gnu/packages/vulkan.scm (shaderc): New variable.
This commit is contained in:
parent
288b8fd5e9
commit
5b69baf0ad
|
@ -22,8 +22,10 @@
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
|
#:use-module (guix build-system meson)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
|
#:use-module (gnu packages cmake)
|
||||||
#:use-module (gnu packages freedesktop)
|
#:use-module (gnu packages freedesktop)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
@ -194,3 +196,79 @@ and the ICD.")
|
||||||
(license (list license:asl2.0 ;LICENSE.txt
|
(license (list license:asl2.0 ;LICENSE.txt
|
||||||
(license:x11-style "file://COPYRIGHT.txt")
|
(license:x11-style "file://COPYRIGHT.txt")
|
||||||
license:bsd-3))))
|
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))))
|
||||||
|
|
Loading…
Reference in New Issue