From 5c78da2834cc90fdecfc315d1e5a5a89165e7c01 Mon Sep 17 00:00:00 2001 From: Simon South Date: Fri, 27 Jan 2023 15:34:26 -0500 Subject: gnu: Add implot. * gnu/packages/toolkits.scm (implot): New variable. Signed-off-by: Danny Milosavljevic Change-Id: I8f80e6ce61da18aa716aadacfe94df466c18a9a3 --- gnu/packages/toolkits.scm | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm index 50b30812f2..7089a86071 100644 --- a/gnu/packages/toolkits.scm +++ b/gnu/packages/toolkits.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2022, 2023 Maxim Cournoyer ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2022, 2023 John Kehayias +;;; Copyright © 2023 Simon South ;;; ;;; This file is part of GNU Guix. ;;; @@ -230,3 +231,52 @@ for applications and does not have any dependencies, a default render backend or OS window/input handling. The library is self contained in one single header file and can be used either in header only mode or in implementation mode.") (license (list license:unlicense license:expat)))) + +(define-public implot + (package + (name "implot") + (version "0.16") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/epezent/implot") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vbsw1qsi7j6pdz77840pxcqcghcl9fld80hchajbhpp1jr1a2gz")))) + (build-system gnu-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'build + ;; Build a shared library from the source code. + (lambda* (#:key inputs #:allow-other-keys) + (invoke #$(cc-for-target) "-I" (getcwd) + "-I" (search-input-directory inputs "include/imgui") + "-g" "-O2" "-fPIC" "-shared" + "-o" "libimplot.so" + "implot.cpp" + "implot_items.cpp"))) + (replace 'install + ;; Copy the library and header files to the output. + (lambda _ + (install-file "libimplot.so" (string-append #$output "/lib")) + (for-each (lambda (file-name) + (install-file file-name + (string-append #$output + "/include/implot"))) + '("implot.h" "implot_internal.h"))))) + #:tests? #f)) ; no test suite + (inputs + (list imgui)) + (home-page "https://github.com/epezent/implot") + (synopsis "Immediate-mode C++ plotting library for ImGui") + (description "ImPlot is an immediate-mode, GPU-accelerated plotting +library in C++ for the ImGui GUI library, suitable for creating real-time +visualizations or interactive plots. Like ImGui, ImPlot is self-contained and +requires only minimal code to integrate with existing applications.") + (license license:expat))) -- cgit v1.2.3