gnu: vulkan: Add glslang.

* gnu/packages/vulkan.scm (glslang): New variable.

Signed-off-by: Marius Bakke <mbakke@fastmail.com>
This commit is contained in:
Rutger Helling 2017-12-14 23:03:02 +01:00 committed by Marius Bakke
parent 794d740e08
commit 6a11d5f149
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
1 changed files with 44 additions and 0 deletions

View File

@ -23,6 +23,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bison)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)) #:use-module (gnu packages python))
@ -98,3 +99,46 @@ and for the GLSL.std.450 extended instruction set.
SPIR-V modules. The project includes an assembler, binary module parser, SPIR-V modules. The project includes an assembler, binary module parser,
disassembler, validator, and optimizer for SPIR-V.") disassembler, validator, and optimizer for SPIR-V.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public glslang
;; Version 3.0 is too old for vulkan-icd-loader. Use a recent git commit
;; until the next stable version.
(let ((commit "471bfed0621162a7513fc24a51e8a1ccc2e640ff")
(revision "1"))
(package
(name "glslang")
(version (string-append "3.0-" revision "." (string-take commit 9)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/glslang")
(commit commit)))
(sha256
(base32
"0m2vljmrqppp80ghbbwfnayqw2canxlcjhgy6jw9xjdssln0d3pd"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;; No tests
;; glslang tries to set CMAKE_INSTALL_PREFIX manually. Remove the
;; offending line.
#:phases (modify-phases %standard-phases
(add-after 'patch-source-shebangs 'fix-cmakelists
(lambda _
(substitute* "CMakeLists.txt"
(("set.*CMAKE_INSTALL_PREFIX.*") ""))
#t)))))
(native-inputs `(("bison" ,bison)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/KhronosGroup/glslang")
(synopsis "OpenGL and OpenGL ES shader front end and validator")
(description
"Glslang is the official reference compiler front end for the
OpenGL@tie{}ES and OpenGL shading languages. It implements a strict
interpretation of the specifications for these languages.")
;; Modified BSD license. See "copyright" section of
;; https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/
(license (list license:bsd-3
;; include/SPIRV/{bitutils,hex_float}.h are Apache 2.0.
license:asl2.0)))))