aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Sprang <scs@stevesprang.com>2019-08-23 15:38:42 -0700
committerLudovic Courtès <ludo@gnu.org>2019-09-11 00:09:39 +0200
commitc3c0eda646f749d8603fbdacb281fd14112b1139 (patch)
tree24b305bdc62a0f7a75beb0c8aebd1b05a2f50dbf
parent984cabc4a66cd6b58354887530d136e92bd8a172 (diff)
downloadguix-c3c0eda646f749d8603fbdacb281fd14112b1139.tar
guix-c3c0eda646f749d8603fbdacb281fd14112b1139.tar.gz
gnu: Add opencsg.
* gnu/packages/graphics.scm (opencsg): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/graphics.scm41
1 files changed, 41 insertions, 0 deletions
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 <kkebreau@posteo.net>
;;; Copyright © 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
+;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;;
;;; 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))))