gnu: Add mojoshader.
* gnu/packages/gl.scm (mojoshader): New variable.
This commit is contained in:
parent
2395d863de
commit
5c1547383f
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -52,6 +53,7 @@
|
|||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix hg-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system meson)
|
||||
|
@ -801,3 +803,56 @@ applications to 3D accelerator hardware in a dedicated server and displays the
|
|||
rendered output interactively to a thin client located elsewhere on the
|
||||
network.")
|
||||
(license license:wxwindows3.1+)))
|
||||
|
||||
(define-public mojoshader
|
||||
(let ((changeset "5887634ea695"))
|
||||
(package
|
||||
(name "mojoshader")
|
||||
(version changeset)
|
||||
(source
|
||||
(origin
|
||||
(method hg-fetch)
|
||||
(uri (hg-reference
|
||||
(url "https://hg.icculus.org/icculus/mojoshader/")
|
||||
(changeset changeset)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ibl4z1696jiifv9j5drir7jm0b5px0vwkwckbi7cfd46p7p6wcy"))))
|
||||
(arguments
|
||||
;; Tests only for COMPILER_SUPPORT=ON.
|
||||
`(#:tests? #f
|
||||
#:configure-flags '("-DBUILD_SHARED=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lib (string-append out "/lib"))
|
||||
(header (string-append out "/include")))
|
||||
(install-file "libmojoshader.so" lib)
|
||||
(for-each (lambda (f)
|
||||
(install-file f header))
|
||||
(find-files "../source" "mojoshader.*\\.h$"))
|
||||
(let ((profiles-header (string-append header "/profiles")))
|
||||
(mkdir-p profiles-header)
|
||||
(rename-file (string-append header "/mojoshader_profile.h")
|
||||
(string-append profiles-header "/mojoshader_profile.h"))))
|
||||
#t)))))
|
||||
(build-system cmake-build-system)
|
||||
(home-page "https://www.icculus.org/mojoshader/")
|
||||
(synopsis "Work with Direct3D shaders on alternate 3D APIs")
|
||||
(description "MojoShader is a library to work with Direct3D shaders on
|
||||
alternate 3D APIs and non-Windows platforms. The primary motivation is moving
|
||||
shaders to OpenGL languages on the fly. The developer deals with \"profiles\"
|
||||
that represent various target languages, such as GLSL or ARB_*_program.
|
||||
|
||||
This allows a developer to manage one set of shaders, presumably written in
|
||||
Direct3D HLSL, and use them across multiple rendering backends. This also
|
||||
means that the developer only has to worry about one (offline) compiler to
|
||||
manage program complexity, while MojoShader itself deals with the reduced
|
||||
complexity of the bytecode at runtime.
|
||||
|
||||
MojoShader provides both a simple API to convert bytecode to various profiles,
|
||||
and (optionally) basic glue to rendering APIs to abstract the management of
|
||||
the shaders at runtime.")
|
||||
(license license:zlib))))
|
||||
|
|
Loading…
Reference in New Issue