gnu: Add dear-imgui.
* gnu/packages/graphics.scm (dear-imgui): New public variable.master
parent
0e8df7403e
commit
e23d5aa908
|
@ -90,6 +90,7 @@
|
||||||
#:use-module (gnu packages qt)
|
#:use-module (gnu packages qt)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages sdl)
|
#:use-module (gnu packages sdl)
|
||||||
|
#:use-module (gnu packages stb)
|
||||||
#:use-module (gnu packages swig)
|
#:use-module (gnu packages swig)
|
||||||
#:use-module (gnu packages tbb)
|
#:use-module (gnu packages tbb)
|
||||||
#:use-module (gnu packages upnp)
|
#:use-module (gnu packages upnp)
|
||||||
|
@ -855,6 +856,78 @@ other vector formats such as:
|
||||||
@end itemize")
|
@end itemize")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public dear-imgui
|
||||||
|
(package
|
||||||
|
(name "dear-imgui")
|
||||||
|
(version "1.79")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/ocornut/imgui")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0x26igynxp6rlpp2wfc5dr7x6yh583ajb7p23pgycn9vqikn318q"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:make-flags
|
||||||
|
(list (string-append "CC=" ,(cc-for-target))
|
||||||
|
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
|
(string-append "VERSION=" ,version))
|
||||||
|
#:tests? #f ; no test suite
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'unpack-debian-files
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(invoke "tar" "xvf" (assoc-ref inputs "debian-files"))
|
||||||
|
(apply invoke "patch" "-Np1" "-i"
|
||||||
|
(find-files "debian/patches" "\\.patch$"))
|
||||||
|
(substitute* "Makefile"
|
||||||
|
(("<stb/") "<") ; Guix doesn't use this subdirectory
|
||||||
|
;; Don't build or install the static library.
|
||||||
|
(("^all: .*") "all: $(SHLIB) $(PCFILE)"))
|
||||||
|
(substitute* (list "imgui.pc.in"
|
||||||
|
"Makefile")
|
||||||
|
;; Don't link against a non-existent library.
|
||||||
|
(("-lstb") ""))
|
||||||
|
#t))
|
||||||
|
(delete 'configure) ; no configure script
|
||||||
|
(replace 'install
|
||||||
|
;; The default ‘install’ target installs the static library. Don't.
|
||||||
|
(lambda* (#:key make-flags #:allow-other-keys)
|
||||||
|
(apply invoke "make" "install-shared" "install-header"
|
||||||
|
make-flags))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("debian-files"
|
||||||
|
;; Upstream doesn't provide a build system. Use Debian's.
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://debian/pool/main/i/imgui/imgui_"
|
||||||
|
version "+ds-1.debian.tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32 "1xhk34pzpha6k5l2j150capq66y8czhmsi04ib09wvb34ahqxpby"))))
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("freetype" ,freetype)
|
||||||
|
("stb-rect-pack" ,stb-rect-pack)
|
||||||
|
("stb-truetype" ,stb-truetype)))
|
||||||
|
(home-page "https://github.com/ocornut/imgui")
|
||||||
|
(synopsis "Immediate-mode C++ GUI library with minimal dependencies")
|
||||||
|
(description
|
||||||
|
"Dear ImGui is a @acronym{GUI, graphical user interface} library for C++.
|
||||||
|
It creates optimized vertex buffers that you can render anytime in your
|
||||||
|
3D-pipeline-enabled application. It's portable, renderer-agnostic, and
|
||||||
|
self-contained, without external dependencies.
|
||||||
|
|
||||||
|
Dear ImGui is aimed at content creation, visualization, and debugging tools as
|
||||||
|
opposed to average end-user interfaces. Hence it favors simplicity and
|
||||||
|
productivity but lacks certain features often found in higher-level libraries.
|
||||||
|
It is particularly suited to integration in game engine tooling, real-time 3D
|
||||||
|
applications, full-screen applications, and embedded platforms without standard
|
||||||
|
operating system features.")
|
||||||
|
(license license:expat))) ; some examples/ use the zlib licence
|
||||||
|
|
||||||
(define-public ogre
|
(define-public ogre
|
||||||
(package
|
(package
|
||||||
(name "ogre")
|
(name "ogre")
|
||||||
|
|
Reference in New Issue