From c3c0eda646f749d8603fbdacb281fd14112b1139 Mon Sep 17 00:00:00 2001 From: Steve Sprang Date: Fri, 23 Aug 2019 15:38:42 -0700 Subject: [PATCH] gnu: Add opencsg. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/graphics.scm (opencsg): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/graphics.scm | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index b06a369325..988b519ffa 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2018 Kei Kebreau ;;; Copyright © 2019 Mark H Weaver ;;; Copyright © 2019 Carlo Zancanaro +;;; Copyright © 2019 Steve Sprang ;;; ;;; This file is part of GNU Guix. ;;; @@ -1018,3 +1019,43 @@ requirements.") performance subdivision surface (subdiv) evaluation on massively parallel CPU and GPU architectures.") (license license:asl2.0))) + +(define-public opencsg + (let ((dot-to-dash (lambda (c) (if (char=? c #\.) #\- c)))) + (package + (name "opencsg") + (version "1.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/floriankirsch/OpenCSG.git") + (commit (string-append "opencsg-" + (string-map dot-to-dash version) + "-release")))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00m4vs6jn3scqczscc4591l1d6zg6anqp9v1ldf9ymf70rdyvm7m")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "src/Makefile" + (("/usr/local") (assoc-ref outputs "out"))) + #t)) + (add-before 'build 'skip-example + (lambda _ (chdir "src") #t))))) + (inputs + `(("glew" ,glew) + ("freeglut" ,freeglut))) + (synopsis "Library for rendering Constructive Solid Geometry (CSG)") + (description + "OpenCSG is a library for rendering Constructive Solid Geometry (CSG) using +OpenGL. CSG is an approach for modeling complex 3D-shapes using simpler ones. +For example, two shapes can be combined by uniting them, by intersecting them, +or by subtracting one shape from the other.") + (home-page "http://www.opencsg.org/") + (license license:gpl2))))