gnu: Add dear-imgui.

* gnu/packages/graphics.scm (dear-imgui): New public variable.
This commit is contained in:
Tobias Geerinckx-Rice 2020-11-14 22:11:41 +01:00
parent 0e8df7403e
commit e23d5aa908
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -90,6 +90,7 @@ (define-module (gnu packages graphics)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages stb)
#:use-module (gnu packages swig)
#:use-module (gnu packages tbb)
#:use-module (gnu packages upnp)
@ -855,6 +856,78 @@ (define-public pstoedit
@end itemize")
(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
(package
(name "ogre")