;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages wine)
#:use-module (gnu packages xorg))
(define-public spirv-headers
;; Keep updated in accordance with
;; https://github.com/google/shaderc/blob/known-good/known_good.json
- (let ((commit "061097878467b8e040fbf153a837d844ef9f9f96")
- (revision "2"))
+ (let ((commit "3ce3e49d73b8abbf2ffe33f829f941fb2a40f552")
+ (revision "3"))
(package
(name "spirv-headers")
(version (string-append "0.0-" revision "." (string-take commit 9)))
(commit commit)))
(sha256
(base32
- "0bf9h6xc5fkncxnadwmqvpsjh7sdgns6is8prv1gvlfzrkvpjj17"))
+ "0yk4bzqifdqpmdxkhvrxbdqhf5ngkga0ig1yyz7khr7rklqfz7wp"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments
#:phases (modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "cmake" "-E" "copy_directory"
+ (invoke "cmake" "-E" "copy_directory"
"../source/include/spirv"
(string-append (assoc-ref outputs "out")
- "/include/spirv"))))))))
+ "/include/spirv")))))))
(home-page "https://github.com/KhronosGroup/SPIRV-Headers")
(synopsis "Machine-readable files from the SPIR-V Registry")
(description
(define-public spirv-tools
;; Keep updated in accordance with
;; https://github.com/google/shaderc/blob/known-good/known_good.json
- (let ((commit "90862fe4b1c6763b32ce683d2d32c2f281f577cf")
- (revision "1"))
+ (let ((commit "fe2fbee294a8ad4434f828a8b4d99eafe9aac88c")
+ (revision "2"))
(package
(name "spirv-tools")
(version (string-append "0.0-" revision "." (string-take commit 9)))
(commit commit)))
(sha256
(base32
- "1yq8ab6f52wcxm2azzmx70nqz8l35izd45830aikjkk1jfzmzabb"))
+ "03rq4ypwqnz34n8ip85n95a3b9rxb34j26azzm3b3invaqchv19x"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags (list (string-append "-DCMAKE_INSTALL_LIBDIR="
- (assoc-ref %outputs "out")
- "/lib")
- (string-append "-DSPIRV-Headers_SOURCE_DIR="
+ `(#:tests? #f ; FIXME: Tests fail.
+ #:configure-flags (list (string-append "-DSPIRV-Headers_SOURCE_DIR="
(assoc-ref %build-inputs
"spirv-headers")))))
(inputs `(("spirv-headers" ,spirv-headers)))
- (native-inputs `(("pkg-config", pkg-config)
+ (native-inputs `(("pkg-config" ,pkg-config)
("python" ,python)))
(home-page "https://github.com/KhronosGroup/SPIRV-Tools")
(synopsis "API and commands for processing SPIR-V modules")
(define-public glslang
;; Keep updated in accordance with
;; https://github.com/google/shaderc/blob/known-good/known_good.json
- (let ((commit "b5b08462442239e6537315ea1405b6afcd53043e")
- (revision "2"))
+ (let ((commit "32d3ec319909fcad0b2b308fe1635198773e8316")
+ (revision "3"))
(package
(name "glslang")
(version (string-append "3.0-" revision "." (string-take commit 9)))
(commit commit)))
(sha256
(base32
- "08imby3hciisshzacrkx8s56lx4fxm7dad06xxaxxcapinmqrvwk"))
+ "1kmgjv5kbrjy6azpgwnjcn3cj8vg5i8hnyk3m969sc0gq2j1rbjj"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments
;; include/SPIRV/{bitutils,hex_float}.h are Apache 2.0.
license:asl2.0)))))
-(define-public vulkan-icd-loader
+(define-public vulkan-headers
+ (package
+ (name "vulkan-headers")
+ (version "1.1.85.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/KhronosGroup/Vulkan-Headers/"
+ "archive/sdk-" version ".tar.gz"))
+ (sha256
+ (base32
+ "166hqqb97kjg6h9vp8yxb1cq02i1kqaxvl693482gf8v21fl7ink"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ; No tests.
+ (home-page
+ "https://github.com/KhronosGroup/Vulkan-Headers")
+ (synopsis "Vulkan Header files and API registry")
+ (description
+ "Vulkan-Headers contains header files and API registry for Vulkan.")
+ (license (list license:asl2.0)))) ;LICENSE.txt
+
+(define-public vulkan-loader
(package
- (name "vulkan-icd-loader")
- (version "1.0.68.0")
+ (name "vulkan-loader")
+ (version (package-version vulkan-headers))
(source
(origin
(method url-fetch)
(uri (string-append
- "https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/"
+ "https://github.com/KhronosGroup/Vulkan-Loader/"
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "1n5gry5zxpwi7330fmi06snalra8hkbbw68gnwbp531kd5ycyinh"))))
+ "04d53ynlc0ww8r67hv4sxwg5sirjhpr1laaa9hc6j4niliw0166n"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh".
#t)))
#:configure-flags (list
"-DBUILD_LAYERS=OFF" ; FIXME: Fails to build.
+ "-DBUILD_TESTS=OFF" ; FIXME: Needs 'googletest' submodule.
(string-append "-DCMAKE_INSTALL_LIBDIR="
(assoc-ref %outputs "out") "/lib"))))
(inputs `(("glslang" ,glslang)
("libxrandr" ,libxrandr)
("mesa" ,mesa)
("spirv-tools" ,spirv-tools)
+ ("vulkan-headers" ,vulkan-headers)
("wayland" ,wayland)))
- (native-inputs `(("pkg-config", pkg-config)
+ (native-inputs `(("pkg-config" ,pkg-config)
("python" ,python)))
(home-page
- "https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers")
+ "https://github.com/KhronosGroup/Vulkan-Loader")
(synopsis "Khronos official ICD loader and validation layers for Vulkan")
(description
"Vulkan allows multiple @dfn{Installable Client Drivers} (ICDs) each
(license:x11-style "file://COPYRIGHT.txt")
license:bsd-3))))
+(define-public vulkan-icd-loader
+ (deprecated-package "vulkan-icd-loader" vulkan-loader))
+
+(define-public vulkan-tools
+ (package
+ (name "vulkan-tools")
+ (version (package-version vulkan-headers))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/KhronosGroup/Vulkan-Tools/"
+ "archive/sdk-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0r26px9rh09giddajlmafv21rx1la1y3bbnjgnpai8aw98wvq9mm"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("glslang" ,glslang)
+ ("libxrandr" ,libxrandr)
+ ("mesa" ,mesa)
+ ("vulkan-headers" ,vulkan-headers)
+ ("vulkan-loader" ,vulkan-loader)
+ ("wayland" ,wayland)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python)))
+ (arguments
+ `(#:tests? #f)) ; No tests.
+ (home-page
+ "https://github.com/KhronosGroup/Vulkan-Tools")
+ (synopsis "Tools and utilities for Vulkan")
+ (description
+ "Vulkan-Tools provides tools and utilities that can assist development by
+enabling developers to verify their applications correct use of the Vulkan
+API.")
+ (license (list license:asl2.0)))) ;LICENSE.txt
+
(define-public shaderc
- (let ((commit "773ec22d49f40b7161820f29d953be4a7e40190d")
- (revision "1"))
+ (let ((commit "be8e0879750303a1de09385465d6b20ecb8b380d")
+ (revision "2"))
(package
- (name "shaderc")
- (version (string-append "0.0-" revision "." (string-take commit 9)))
+ (name "shaderc")
+ (version (git-version "0.0.0" revision commit))
+ (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
+ "16p25ry2i4zrj00zihfpf210f8xd7g398ffbw25igvi9mbn4nbfd"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:tests? #f ; FIXME: Tests fail.
+ #: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 inputs "spirv-tools-source"))
+ (spirv-headers-source (assoc-ref inputs "spirv-headers-source"))
+ (glslang-source (assoc-ref inputs "glslang-source")))
+ (copy-recursively spirv-tools-source "third_party/spirv-tools")
+ (copy-recursively spirv-headers-source
+ (string-append "third_party/spirv-tools"
+ "/external/spirv-headers"))
+ (copy-recursively glslang-source "third_party/glslang")
+ #t))))))
+ (inputs
+ `(("googletest" ,googletest)
+ ("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))))
+
+(define-public vkd3d
+ (let ((commit "ecda316ef54d70bf1b3e860755241bb75873e53f")) ; Release 1.1.
+ (package
+ (name "vkd3d")
+ (version "1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/google/shaderc")
+ (url "https://source.winehq.org/git/vkd3d.git")
(commit commit)))
- (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0b41inb1czxv3mciip0lfdxv19ccx2ys31fivfywjn2q8va1gd1f"))))
- (build-system meson-build-system)
+ "05a28kspy8gzng181w28zjqdb3pj2ss83b0lwnppxbcdzsz7rvrf"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-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))))
+ `(#:configure-flags '("--with-spirv-tools")))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gettext" ,gnu-gettext)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("spirv-headers" ,spirv-headers)
+ ("spirv-tools" ,spirv-tools)
+ ("vulkan-headers" ,vulkan-headers)
+ ("vulkan-loader" ,vulkan-loader)
+ ("wine" ,wine) ; Needed for 'widl'.
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util-wm" ,xcb-util-wm)))
+ (home-page "https://source.winehq.org/git/vkd3d.git/")
+ (synopsis "Direct3D 12 to Vulkan translation library")
+ (description "vkd3d is a library for translating Direct3D 12 to Vulkan.")
+ (license license:lgpl2.1))))