gnu: Add cxxopts.
[jackhill/guix/guix.git] / gnu / packages / piet.scm
CommitLineData
89b091a6
JG
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages piet)
20 #:use-module (guix packages)
21 #:use-module (guix download)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (guix build-system gnu)
24 #:use-module (gnu packages gd)
25 #:use-module (gnu packages groff)
26 #:use-module (gnu packages image)
27 #:use-module (gnu packages tcl))
28
29(define-public npiet
30 (package
31 (name "npiet")
32 (version "1.3f")
33 (source (origin
34 (method url-fetch)
35 (uri (string-append "https://www.bertnase.de/npiet/npiet-"
36 version ".tar.gz"))
37 (sha256
38 (base32
39 "0nl59fhdqqr7nslxdirdn8nvlq5wws67c7jyx2ckbmxbc9h8bv9d"))))
40 (build-system gnu-build-system)
41 (arguments
42 `(#:phases
43 (modify-phases %standard-phases
44 (add-after 'install 'wrap-binaries
45 (lambda* (#:key outputs #:allow-other-keys)
46 (let ((out (assoc-ref outputs "out")))
47 (wrap-program (string-append out "/bin/npietedit")
48 `("PATH" ":" prefix (,(dirname (which "wish")))))
49 #t))))))
50 (inputs
51 `(("gd" ,gd)
52 ("giflib" ,giflib)
53 ("libpng" ,libpng)
54 ("tk" ,tk)))
55 (native-inputs `(("groff" ,groff)))
56 (synopsis "Piet interpreter")
57 (description
58 "Npiet is an interpreter for the piet programming language. Instead of
59text, piet programs are pictures. Commands are determined based on changes in
60color.
61
62This package includes:
63@enumerate
64@item npiet, a piet interpreter with debugging capabilities
65@item npiet-foogol, a program that builds a piet program from foogol, an
66algol-like language
67@item npietedit, an editor for the piet programming language
68@end enumerate")
69 (home-page "https://www.bertnase.de/npiet/")
70 (license license:gpl2+)))