diff options
Diffstat (limited to 'gnu/packages/game-development.scm')
-rw-r--r-- | gnu/packages/game-development.scm | 103 |
1 files changed, 96 insertions, 7 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 5dd22215b8..62f6051e98 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -32,6 +32,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages game-development) + #:use-module (srfi srfi-1) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -45,6 +46,7 @@ #:use-module (gnu packages) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages curl) @@ -1037,13 +1039,14 @@ robust and compatible with many systems and operating systems.") (version "3.2.2") (source (origin - (method url-fetch) - (uri - (string-append "https://github.com/MyGUI/" name - "/archive/MyGUI" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/MyGUI/mygui") + (commit (string-append "MyGUI" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "13x7cydmj7gjmsg702sqjbfi53z265iv6j7binv3r6a7ibndfa0a")))) + "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; No test target @@ -1051,7 +1054,11 @@ robust and compatible with many systems and operating systems.") (list "-DMYGUI_INSTALL_DOCS=TRUE" (string-append "-DOGRE_INCLUDE_DIR=" (assoc-ref %build-inputs "ogre") - "/include/OGRE")))) + "/include/OGRE") + ;; Demos and tools are Windows-specific: + ;; https://github.com/MyGUI/mygui/issues/24. + "-DMYGUI_BUILD_DEMOS=FALSE" + "-DMYGUI_BUILD_TOOLS=FALSE"))) (native-inputs `(("boost" ,boost) ("doxygen" ,doxygen) @@ -1071,6 +1078,29 @@ of use.") (home-page "http://mygui.info/") (license license:expat))) +(define-public mygui-gl + ;; Closure size is reduced by some 800 MiB. + (package + (inherit mygui) + (name "mygui-gl") + (version "3.2.2") + (arguments + (substitute-keyword-arguments (package-arguments mygui) + ((#:configure-flags _) + `(cons* "-DMYGUI_RENDERSYSTEM=4" ; 3 is Ogre, 4 is OpenGL. + ;; We can't reuse the flags because of the mention to Ogre. + (list "-DMYGUI_INSTALL_DOCS=TRUE" + ;; Demos and tools are Windows-specific: + ;; https://github.com/MyGUI/mygui/issues/24. + "-DMYGUI_BUILD_DEMOS=FALSE" + "-DMYGUI_BUILD_TOOLS=FALSE"))))) + (inputs + `(("mesa" ,mesa) + ("glu" ,glu) + ,@(fold alist-delete (package-inputs mygui) + '("ogre")))) + (synopsis "Fast, flexible and simple GUI (OpenGL backend)"))) + (define-public openmw (package (name "openmw") @@ -1097,7 +1127,7 @@ of use.") `(("bullet" ,bullet) ("ffmpeg" ,ffmpeg) ("libxt" ,libxt) - ("mygui" ,mygui) + ("mygui" ,mygui-gl) ; OpenMW does not need Ogre. ("openal" ,openal) ("openscenegraph" ,openscenegraph) ("qtbase" ,qtbase) @@ -1434,3 +1464,62 @@ collection of handy utility functions. All are 100% portable across nearly all modern computing platforms. Each library component is fairly independent of the others") (license license:lgpl2.0+))) + +(define-public ioquake3 + ;; We follow master since it seems that there won't be releases after 1.3.6. + (let ((commit "95b9cab4d644fa3bf757cfff821cc4f7d76e38b0")) + (package + (name "ioquake3") + (version (git-version "1.3.6" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ioquake/ioq3.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vflk028z9gccg5yfi5451y1k5wxjdh3qbhjf4x6r7w2pzlxh16z")))) + (build-system gnu-build-system) + (inputs + `(("sdl2" ,sdl2) + ("libjpeg" ,libjpeg) + ("openal" ,openal) + ("curl" ,curl) + ("opusfile" ,opusfile) + ("opus" ,opus) + ("libvorbis" ,libvorbis) + ("freetype" ,freetype) + ("libogg" ,libogg))) + (native-inputs + `(("which" ,which) ; Else SDL_version.h won't be found. + ("pkg-config" ,pkg-config))) + (arguments + '(#:tests? #f ; No tests. + #:make-flags '("CC=gcc" + "USE_INTERNAL_LIBS=0" + "USE_FREETYPE=1" + "USE_RENDERER_DLOPEN=0" + "USE_OPENAL_DLOPEN=0" + "USE_CURL_DLOPEN=0") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "make" "copyfiles" "CC=gcc" + "USE_INTERNAL_LIBS=0" + (string-append "COPYDIR=" + (assoc-ref outputs "out") + "/bin"))))))) + (home-page "https://ioquake3.org/") + (synopsis "FPS game engine based on Quake 3") + (description "ioquake3 is a free software first person shooter engine +based on the Quake 3: Arena and Quake 3: Team Arena source code. Compared to +the original, ioquake3 has been cleaned up, bugs have been fixed and features +added. The permanent goal is to create the open source Quake 3 distribution +upon which people base their games, ports to new platforms, and other +projects.") + (supported-systems '("x86_64-linux" "i686-linux")) + (license license:gpl2)))) |