summary refs log tree commit diff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2018-08-02 11:56:01 +0300
committerEfraim Flashner <efraim@flashner.co.il>2018-08-02 12:19:42 +0300
commit7b8a753672d65a0bc5f51e0063aa4c80688ef4ee (patch)
tree24c2e6df83530dcb0f4f84df4300686247065cdd /gnu/packages/games.scm
parente8d8b485d0064fec8a8aa51b3ddb612fd722389e (diff)
downloadguix-7b8a753672d65a0bc5f51e0063aa4c80688ef4ee.tar.gz
gnu: irrlicht: Don't use bundled libraries.
* gnu/packages/patches/irrlicht-use-system-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/games.scm (irrlicht)[source]: Add patch. Remove bundled
code and binaries in a snippet.
[native-inputs]: Remove unzip.
[inputs]: Remove glu, add bzip2, libjpeg, libpng, libx11, libxx86vm.
[arguments]: Remove custom 'unpack phase, add custom 'chdir-to-source
phase and adjust 'fix-build-env phase to changes.
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm45
1 files changed, 32 insertions, 13 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index c96ccede1e..5ff25e431b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1483,34 +1483,53 @@ are primarily in English, however some in other languages are provided.")
                     "/" version "/irrlicht-" version ".zip"))
               (sha256
                (base32
-                "0cz4z4dwrv5ypl19ll67wl6jjpy5k6ly4vr042w4br88qq5jhazl"))))
+                "0cz4z4dwrv5ypl19ll67wl6jjpy5k6ly4vr042w4br88qq5jhazl"))
+              (patches (search-patches "irrlicht-use-system-libs.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (for-each delete-file-recursively
+                     '("bin" ; bundled compiled Windows binaries"
+                       "source/Irrlicht/MacOSX"
+                       "source/Irrlicht/bzip2"
+                       "source/Irrlicht/jpeglib"
+                       "source/Irrlicht/libpng"
+                       "source/Irrlicht/lzma"
+                       "source/Irrlicht/zlib"))
+                  (delete-file "source/Irrlicht/glext.h")
+                  (delete-file "source/Irrlicht/glxext.h")
+                  (delete-file "source/Irrlicht/wglext.h")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-build-env
+         (add-after 'unpack 'chdir-to-source
+           (lambda _
+             ;; The actual source is buried a few directories deep.
+             (chdir "source/Irrlicht/")
+             #t))
+         (add-after 'chdir-to-source 'fix-build-env
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (substitute* "Makefile"
                  (("INSTALL_DIR = /usr/local/lib")
-                  (string-append "INSTALL_DIR = " out "/lib")))
+                  (string-append "INSTALL_DIR = " out "/lib"))
+                 ;; Add '-fpermissive' to the CXXFLAGS
+                 (("-Wall") "-Wall -fpermissive")) ; CImageLoaderJPG.cpp
                ;; The Makefile assumes these directories exist.
                (mkdir-p (string-append out "/lib"))
                (mkdir-p (string-append out "/include")))))
-         (replace 'unpack
-           (lambda* (#:key source #:allow-other-keys)
-             (and (zero? (system* "unzip" source))
-                  ;; The actual source is buried a few directories deep.
-                  (chdir (string-append "irrlicht-" ,version
-                                        "/source/Irrlicht/")))))
          (delete 'configure))           ; no configure script
        #:tests? #f                      ; no check target
        #:make-flags '("CC=gcc" "sharedlib")))
-    (native-inputs
-     `(("unzip" ,unzip)))
     (inputs
-     `(("mesa" ,mesa)
-       ("glu" ,glu)))
+     `(("bzip2" ,bzip2)
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("libx11" ,libx11)
+       ("libxxf86vm" ,libxxf86vm)
+       ("mesa" ,mesa)))
     (synopsis "3D game engine written in C++")
     (description
      "The Irrlicht Engine is a high performance realtime 3D engine written in