guix-more/more/packages/games.scm

games.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
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 (more packages games)
20
  #:use-module (guix packages)
21
  #:use-module (guix download)
22
  #:use-module (guix build-system cmake)
23
  #:use-module (guix build-system gnu)
24
  #:use-module ((guix licenses) #:prefix license:)
25
  #:use-module (gnu packages)
26
  #:use-module (gnu packages audio)
27
  #:use-module (gnu packages boost)
28
  #:use-module (gnu packages check)
29
  #:use-module (gnu packages compression)
30
  #:use-module (gnu packages databases)
31
  #:use-module (gnu packages documentation)
32
  #:use-module (gnu packages fontutils)
33
  #:use-module (gnu packages fribidi)
34
  #:use-module (gnu packages games)
35
  #:use-module (gnu packages gl)
36
  #:use-module (gnu packages gtk)
37
  #:use-module (gnu packages image)
38
  #:use-module (gnu packages lua)
39
  #:use-module (gnu packages ncurses)
40
  #:use-module (gnu packages pcre)
41
  #:use-module (gnu packages pkg-config)
42
  #:use-module (gnu packages python)
43
  #:use-module (gnu packages sdl)
44
  #:use-module (gnu packages tbb)
45
  #:use-module (more packages tcl)
46
  #:use-module (gnu packages xiph)
47
  #:use-module (gnu packages xml)
48
  #:use-module (gnu packages xorg)
49
  #:use-module (gnu packages zip))
50
51
(define-public ogre3d
52
  (package
53
    (name "ogre3d")
54
    (version "1.9.0")
55
    (source (origin
56
              (method url-fetch)
57
              (uri (string-append
58
                     "https://bitbucket.org/sinbad/ogre/get/v"
59
                     (string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
60
                     ".tar.gz"))
61
              (file-name (string-append name "-" version ".tar.gz"))
62
              (sha256
63
               (base32
64
                "0p8gyn293qn3iyiy1smfmjd9zpnjb8h2zgvff8778fwh0ylbmlpa"))))
65
    (build-system cmake-build-system)
66
    (native-inputs
67
     `(("doxygen" ,doxygen)))
68
    (inputs
69
     `(("freetype" ,freetype)
70
       ("boost" ,boost)
71
       ("sdl2" ,sdl2)
72
       ("cppunit" ,cppunit)
73
       ("freeimage" ,freeimage)
74
       ("glu" ,glu)
75
       ("libxt" ,libxt)
76
       ("libxaw" ,libxaw)
77
       ("libxxf86vm" ,libxxf86vm)
78
       ("libxrandr" ,libxrandr)
79
       ("mesa" ,mesa)
80
       ("tbb" ,tbb)
81
       ("tinyxml" ,tinyxml)
82
       ("zziplib" ,zziplib)))
83
    (arguments
84
     `(#:tests? #f
85
       #:configure-flags
86
       (list (string-append "-DFREETYPE_FT2BUILD_INCLUDE_DIR="
87
               (assoc-ref %build-inputs "freetype")
88
               "/include"))
89
       #:phases
90
       (modify-phases %standard-phases
91
         (add-after 'build 'build-doc
92
           (lambda* _
93
             (zero? (system* "make" "OgreDoc")))))))
94
    (home-page "http://www.ogre3d.org")
95
    (synopsis "3D graphics engine")
96
    (description "3D graphics engine")
97
    (license license:expat)))
98
99
(define-public cegui
100
  (package
101
    (name "cegui")
102
    (version "0.8.7")
103
    (source (origin
104
              (method url-fetch)
105
              (uri (string-append
106
                     "http://prdownloads.sourceforge.net/crayzedsgui/cegui-"
107
                     version ".tar.bz2"))
108
              (sha256
109
               (base32
110
                "067562s71kfsnbp2zb2bmq8zj3jk96g5a4rcc5qc3n8nfyayhldk"))))
111
    (build-system cmake-build-system)
112
    (arguments
113
     `(#:tests? #f))
114
    (native-inputs
115
     `(("pkg-config" ,pkg-config)))
116
    (inputs
117
     `(("pcre" ,pcre)
118
       ("gl" ,mesa)
119
       ("freetype" ,freetype)
120
       ("fribidi" ,fribidi)
121
       ("glew" ,glew)
122
       ("sdl2" ,sdl2)
123
       ("irrlicht" ,irrlicht)
124
       ("ogre" ,ogre3d)
125
       ("epoxy" ,libepoxy)
126
       ("expat" ,expat)
127
       ("libxml2" ,libxml2)
128
       ("freeimage" ,freeimage)
129
       ("python" ,python)
130
       ("lua" ,lua-5.1)
131
       ("gtk" ,gtk+-2)
132
       ("boost" ,boost)
133
       ("minizip" ,minizip)
134
       ("tinyxml" ,tinyxml)))
135
    (home-page "http://cegui.org.uk/")
136
    (synopsis "Crazy Eddie's GUI system")
137
    (description "Crazy Eddie's GUI System is a free library providing windowing
138
and widgets for graphics APIs / engines where such functionality is not natively
139
available, or severely lacking.  The library is object-oriented, written in C++,
140
cross-platform, and targeted at game and application developers.  Additionally,
141
it offers a WYSIWYG editor for creating layouts and imagesets.")
142
    (license license:expat)))
143
144
(define-public morji
145
  (package
146
    (name "morji")
147
    (version "0.1")
148
    (source (origin
149
              (method url-fetch)
150
              (uri (string-append
151
                     "https://bardinflor.perso.aquilenet.fr/morji/morji-"
152
                     version ".tar.gz"))
153
              (sha256
154
               (base32
155
                "18givlgh10cg0a3gs3747ihhfm4hyj056cr3x7vqhcnrx6vgy06i"))))
156
    (build-system gnu-build-system)
157
    (arguments
158
     `(#:phases
159
       (modify-phases %standard-phases
160
         (delete 'configure)
161
         (delete 'build)
162
         (replace 'install
163
           (lambda* (#:key outputs #:allow-other-keys)
164
             (zero? (system* "make" "install"
165
                             (string-append "PREFIX=" (assoc-ref outputs "out"))))))
166
         (replace 'check
167
           (lambda _
168
             (zero? (system* "tclsh" "test_expect.tcl")))))))
169
    (propagated-inputs
170
     `(("ncurses" ,ncurses) ; TODO: this should probably be a propagated-input of tcllib.
171
       ("sqlite" ,sqlite)
172
       ("tcl" ,tcl-fix)
173
       ("tcllib" ,tcllib-fix)))
174
    (native-inputs
175
     `(("expect" ,expect-fix)))
176
    (home-page "https://bardinflor.perso.aquilenet.fr/morji/intro-en")
177
    (synopsis "Simple flashcard program for the terminal")
178
    (description "Morji is a simple flashcard program for the terminal.  It
179
uses a modified version of the SM2 algorithm taking inspiration from mnemosyne
180
and anki.")
181
    (license license:isc)))
182