@@ -2359,6 +2359,112 @@ (define-public flatzebra
double-buffering.")
(license license:gpl2+)))
+(define-public fgeal
+ (let ((commit "0ae72fbf31eb2e133fe83520391e7a82c0b59e67")
+ (revision "0"))
+ (package
+ (name "fgeal")
+ (version (git-version "0.8.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/hydren/fgeal")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0lck86n8nkhb088bd0jg4imi9j5l1lwfr2pddqqr880rjrnnm8fw"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ (with-directory-excursion "project/build/linux-gcc-sdl2-release"
+ (rename-file "configure.sh" "configure")
+ (substitute* "configure"
+ (("-exec sed -i")
+ (string-append
+ "-exec sed -i"
+ " \"s,SDL2_CFLAGS,`pkg-config --cflags sdl2`,g\" {} \\;"
+ " -exec sed -i"))
+ (("which") "type -p"))
+ (substitute* "makefile"
+ (("RM := rm -rf")
+ (string-append "RM := rm -rf\n"
+ "PREFIX ?= /usr/local"))
+ (("clean:")
+ (string-append
+ "install:\n\t"
+ "install -d $(DESTDIR)$(PREFIX)/include\n\t"
+ "cp -r ../fgeal $(DESTDIR)$(PREFIX)/include\n\t"
+ "install -d $(DESTDIR)$(PREFIX)/lib\n\t"
+ "install -m 644 libfgeal.so $(DESTDIR)$(PREFIX)/lib\n\n"
+ "clean:")))
+ (substitute* "extra/subdir.mk"
+ (("../extra/input_manager.cpp \\\\")
+ (string-append "../extra/input_manager.cpp \\\n"
+ "../extra/primitives.cpp \\"))
+ (("./extra/input_manager.o \\\\")
+ (string-append "./extra/input_manager.o \\\n"
+ "./extra/primitives.o \\"))
+ (("./extra/input_manager.d \\\\")
+ (string-append "./extra/input_manager.d \\\n"
+ "./extra/primitives.d \\"))))
+ (copy-recursively "project/build/linux-gcc-sdl2-release"
+ "linux-gcc-sdl2-release")
+ (substitute* (find-files "." "\\.mk")
+ (("-I\"BUILD_PATH\"") "-I\"BUILD_PATH\" SDL2_CFLAGS"))
+ (for-each
+ (lambda (file)
+ (install-file file "fgeal"))
+ '("agnostic_cached_drawable_text.hxx"
+ "agnostic_filesystem.hxx"
+ "agnostic_sound_stream.hxx"
+ "colors.hpp"
+ "core.hpp"
+ "display.hpp"
+ "event.hpp"
+ "exceptions.hpp"
+ "fgeal.hpp"
+ "filesystem.hpp"
+ "font.hpp"
+ "friend_classes.hxx"
+ "generic_graphics.hxx"
+ "geometry.hpp"
+ "graphics.hpp"
+ "image.hpp"
+ "input.hpp"
+ "sound.hpp"
+ "version.h"))
+ (for-each
+ (lambda (file)
+ (install-file file "fgeal/extra"))
+ (find-files "extra" "\\.hpp$"))))))
+ (build-system gnu-build-system)
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list sdl2
+ sdl2-gfx
+ sdl2-image
+ sdl2-mixer
+ sdl2-ttf))
+ (arguments
+ (list #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "linux-gcc-sdl2-release"))))
+ #:make-flags
+ #~(list (string-append "DESTDIR=" #$output)
+ "PREFIX=")))
+ (home-page "https://gitlab.com/hydren/fgeal")
+ (synopsis "Simple C++ game library wrapper")
+ (description "fgeal is a simple C++ wrapper library meant to provide
+common functionalities between some game libraries through a single API.
+ It serves as a cross-platform abstraction layer to other low-level game
+libraries, such as SDL.")
+ (license license:lgpl2.1+))))
+
(define-public libccd
(package
(name "libccd")
From 735f08bc3d271959685e03d761f5ac9039e5cfd3 Mon Sep 17 00:00:00 2001 Message-Id: <735f08bc3d271959685e03d761f5ac9039e5cfd3.1678947948.git.adam.faiz@disroot.org> From: AwesomeAdam54321 <adam.faiz@disroot.org> Date: Tue, 14 Mar 2023 13:38:36 +0800 Subject: [PATCH v1 1/5] gnu: Add fgeal. * gnu/packages/game-development.scm (fgeal): New variable. --- gnu/packages/game-development.scm | 106 ++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) base-commit: 5befcff66edb4d72ab8e713c81836fb8519ce3e6