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.
This commit is contained in:
parent
e8d8b485d0
commit
7b8a753672
|
@ -805,6 +805,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||
%D%/packages/patches/intltool-perl-compatibility.patch \
|
||||
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
||||
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
|
||||
%D%/packages/patches/jacal-fix-texinfo.patch \
|
||||
%D%/packages/patches/jamvm-arm.patch \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,202 @@
|
|||
This patch is a combination of the two following patches with minor
|
||||
changes to the install code
|
||||
https://sources.debian.org/src/irrlicht/1.8.4+dfsg1-1/debian/patches/debian/link-against-needed-libs.diff/
|
||||
https://sources.debian.org/src/irrlicht/1.8.4+dfsg1-1/debian/patches/debian/use-system-libs.diff/
|
||||
|
||||
|
||||
---
|
||||
include/IrrCompileConfig.h | 26 +++++++++------------
|
||||
source/Irrlicht/CIrrDeviceLinux.h | 2 +-
|
||||
source/Irrlicht/COpenGLExtensionHandler.h | 8 +++----
|
||||
source/Irrlicht/COpenGLSLMaterialRenderer.h | 2 +-
|
||||
source/Irrlicht/Makefile | 15 ++++++------
|
||||
5 files changed, 25 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/include/IrrCompileConfig.h b/include/IrrCompileConfig.h
|
||||
index 6bb0589..2216353 100644
|
||||
--- a/include/IrrCompileConfig.h
|
||||
+++ b/include/IrrCompileConfig.h
|
||||
@@ -238,6 +238,17 @@ for Windows based systems. You also have to set #define UNICODE for this to comp
|
||||
#undef _IRR_WCHAR_FILESYSTEM
|
||||
#endif
|
||||
|
||||
+//! Define _IRR_COMPILE_WITH_ZLIB_ to enable compiling the engine using zlib.
|
||||
+/** This enables the engine to read from compressed .zip archives. If you
|
||||
+disable this feature, the engine can still read archives, but only uncompressed
|
||||
+ones. */
|
||||
+#define _IRR_COMPILE_WITH_ZLIB_
|
||||
+
|
||||
+//! Define _IRR_USE_NON_SYSTEM_ZLIB_ to let irrlicht use the zlib which comes with irrlicht.
|
||||
+/** If this is commented out, Irrlicht will try to compile using the zlib installed in the system.
|
||||
+ This is only used when _IRR_COMPILE_WITH_ZLIB_ is defined. */
|
||||
+#undef _IRR_USE_NON_SYSTEM_ZLIB_
|
||||
+
|
||||
//! Define _IRR_COMPILE_WITH_JPEGLIB_ to enable compiling the engine using libjpeg.
|
||||
/** This enables the engine to read jpeg images. If you comment this out,
|
||||
the engine will no longer read .jpeg images. */
|
||||
@@ -249,10 +260,7 @@ the engine will no longer read .jpeg images. */
|
||||
//! Define _IRR_USE_NON_SYSTEM_JPEG_LIB_ to let irrlicht use the jpeglib which comes with irrlicht.
|
||||
/** If this is commented out, Irrlicht will try to compile using the jpeg lib installed in the system.
|
||||
This is only used when _IRR_COMPILE_WITH_LIBJPEG_ is defined. */
|
||||
-#define _IRR_USE_NON_SYSTEM_JPEG_LIB_
|
||||
-#ifdef NO_IRR_USE_NON_SYSTEM_JPEG_LIB_
|
||||
#undef _IRR_USE_NON_SYSTEM_JPEG_LIB_
|
||||
-#endif
|
||||
|
||||
//! Define _IRR_COMPILE_WITH_LIBPNG_ to enable compiling the engine using libpng.
|
||||
/** This enables the engine to read png images. If you comment this out,
|
||||
@@ -265,10 +273,7 @@ the engine will no longer read .png images. */
|
||||
//! Define _IRR_USE_NON_SYSTEM_LIBPNG_ to let irrlicht use the libpng which comes with irrlicht.
|
||||
/** If this is commented out, Irrlicht will try to compile using the libpng installed in the system.
|
||||
This is only used when _IRR_COMPILE_WITH_LIBPNG_ is defined. */
|
||||
-#define _IRR_USE_NON_SYSTEM_LIB_PNG_
|
||||
-#ifdef NO_IRR_USE_NON_SYSTEM_LIB_PNG_
|
||||
#undef _IRR_USE_NON_SYSTEM_LIB_PNG_
|
||||
-#endif
|
||||
|
||||
//! Define _IRR_D3D_NO_SHADER_DEBUGGING to disable shader debugging in D3D9
|
||||
/** If _IRR_D3D_NO_SHADER_DEBUGGING is undefined in IrrCompileConfig.h,
|
||||
@@ -602,10 +607,7 @@ ones. */
|
||||
/** If this is commented out, Irrlicht will try to compile using the zlib
|
||||
installed on the system. This is only used when _IRR_COMPILE_WITH_ZLIB_ is
|
||||
defined. */
|
||||
-#define _IRR_USE_NON_SYSTEM_ZLIB_
|
||||
-#ifdef NO_IRR_USE_NON_SYSTEM_ZLIB_
|
||||
#undef _IRR_USE_NON_SYSTEM_ZLIB_
|
||||
-#endif
|
||||
//! Define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_ if you want to read AES-encrypted ZIP archives
|
||||
#define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
|
||||
#ifdef NO_IRR_COMPILE_WITH_ZIP_ENCRYPTION_
|
||||
@@ -623,18 +625,12 @@ library. */
|
||||
/** If this is commented out, Irrlicht will try to compile using the bzlib
|
||||
installed on the system. This is only used when _IRR_COMPILE_WITH_BZLIB_ is
|
||||
defined. */
|
||||
-#define _IRR_USE_NON_SYSTEM_BZLIB_
|
||||
-#ifdef NO_IRR_USE_NON_SYSTEM_BZLIB_
|
||||
#undef _IRR_USE_NON_SYSTEM_BZLIB_
|
||||
-#endif
|
||||
//! Define _IRR_COMPILE_WITH_LZMA_ if you want to use LZMA compressed zip files.
|
||||
/** LZMA is a very efficient compression code, known from 7zip. Irrlicht
|
||||
currently only supports zip archives, though. */
|
||||
-#define _IRR_COMPILE_WITH_LZMA_
|
||||
-#ifdef NO_IRR_COMPILE_WITH_LZMA_
|
||||
#undef _IRR_COMPILE_WITH_LZMA_
|
||||
#endif
|
||||
-#endif
|
||||
|
||||
//! Define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ if you want to mount folders as archives
|
||||
#define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
|
||||
diff --git a/source/Irrlicht/CIrrDeviceLinux.h b/source/Irrlicht/CIrrDeviceLinux.h
|
||||
index 4d2a2c6..8cf24ba 100644
|
||||
--- a/source/Irrlicht/CIrrDeviceLinux.h
|
||||
+++ b/source/Irrlicht/CIrrDeviceLinux.h
|
||||
@@ -22,7 +22,7 @@
|
||||
#define GLX_GLXEXT_LEGACY 1
|
||||
#include <GL/glx.h>
|
||||
#ifdef _IRR_OPENGL_USE_EXTPOINTER_
|
||||
-#include "glxext.h"
|
||||
+#include <GL/glxext.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
diff --git a/source/Irrlicht/COpenGLExtensionHandler.h b/source/Irrlicht/COpenGLExtensionHandler.h
|
||||
index 1b77bad..3886a0e 100644
|
||||
--- a/source/Irrlicht/COpenGLExtensionHandler.h
|
||||
+++ b/source/Irrlicht/COpenGLExtensionHandler.h
|
||||
@@ -35,7 +35,7 @@
|
||||
#endif
|
||||
#include <OpenGL/gl.h>
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
- #include "glext.h"
|
||||
+ #include <GL/glext.h>
|
||||
#endif
|
||||
#elif defined(_IRR_COMPILE_WITH_SDL_DEVICE_) && !defined(_IRR_COMPILE_WITH_X11_DEVICE_)
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
@@ -48,7 +48,7 @@
|
||||
#define NO_SDL_GLEXT
|
||||
#include <SDL/SDL_video.h>
|
||||
#include <SDL/SDL_opengl.h>
|
||||
- #include "glext.h"
|
||||
+ #include <GL/glext.h>
|
||||
#else
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
#define GL_GLEXT_LEGACY 1
|
||||
@@ -60,9 +60,9 @@
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glx.h>
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
- #include "glext.h"
|
||||
+ #include <GL/glext.h>
|
||||
#undef GLX_ARB_get_proc_address // avoid problems with local glxext.h
|
||||
- #include "glxext.h"
|
||||
+ #include <GL/glxext.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
diff --git a/source/Irrlicht/COpenGLSLMaterialRenderer.h b/source/Irrlicht/COpenGLSLMaterialRenderer.h
|
||||
index ff71150..f8a6007 100644
|
||||
--- a/source/Irrlicht/COpenGLSLMaterialRenderer.h
|
||||
+++ b/source/Irrlicht/COpenGLSLMaterialRenderer.h
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
|
||||
- #include "glext.h"
|
||||
+ #include <GL/glext.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
diff --git a/source/Irrlicht/Makefile b/source/Irrlicht/Makefile
|
||||
index 67a3899..d9ea7f3 100644
|
||||
--- a/source/Irrlicht/Makefile
|
||||
+++ b/source/Irrlicht/Makefile
|
||||
@@ -43,7 +43,7 @@ IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderDDS.o CIm
|
||||
CImageWriterBMP.o CImageWriterJPG.o CImageWriterPCX.o CImageWriterPNG.o CImageWriterPPM.o CImageWriterPSD.o CImageWriterTGA.o
|
||||
IRRVIDEOOBJ = CVideoModeList.o CFPSCounter.o $(IRRDRVROBJ) $(IRRIMAGEOBJ)
|
||||
IRRSWRENDEROBJ = CSoftwareDriver.o CSoftwareTexture.o CTRFlat.o CTRFlatWire.o CTRGouraud.o CTRGouraudWire.o CTRNormalMap.o CTRStencilShadow.o CTRTextureFlat.o CTRTextureFlatWire.o CTRTextureGouraud.o CTRTextureGouraudAdd.o CTRTextureGouraudNoZ.o CTRTextureGouraudWire.o CZBuffer.o CTRTextureGouraudVertexAlpha2.o CTRTextureGouraudNoZ2.o CTRTextureLightMap2_M2.o CTRTextureLightMap2_M4.o CTRTextureLightMap2_M1.o CSoftwareDriver2.o CSoftwareTexture2.o CTRTextureGouraud2.o CTRGouraud2.o CTRGouraudAlpha2.o CTRGouraudAlphaNoZ2.o CTRTextureDetailMap2.o CTRTextureGouraudAdd2.o CTRTextureGouraudAddNoZ2.o CTRTextureWire2.o CTRTextureLightMap2_Add.o CTRTextureLightMapGouraud2_M4.o IBurningShader.o CTRTextureBlend.o CTRTextureGouraudAlpha.o CTRTextureGouraudAlphaNoZ.o CDepthBuffer.o CBurningShader_Raster_Reference.o
|
||||
-IRRIOOBJ = CFileList.o CFileSystem.o CLimitReadFile.o CMemoryFile.o CReadFile.o CWriteFile.o CXMLReader.o CXMLWriter.o CWADReader.o CZipReader.o CPakReader.o CNPKReader.o CTarReader.o CMountPointReader.o irrXML.o CAttributes.o lzma/LzmaDec.o
|
||||
+IRRIOOBJ = CFileList.o CFileSystem.o CLimitReadFile.o CMemoryFile.o CReadFile.o CWriteFile.o CXMLReader.o CXMLWriter.o CWADReader.o CZipReader.o CPakReader.o CNPKReader.o CTarReader.o CMountPointReader.o irrXML.o CAttributes.o
|
||||
IRROTHEROBJ = CIrrDeviceSDL.o CIrrDeviceLinux.o CIrrDeviceConsole.o CIrrDeviceStub.o CIrrDeviceWin32.o CIrrDeviceFB.o CLogger.o COSOperator.o Irrlicht.o os.o
|
||||
IRRGUIOBJ = CGUIButton.o CGUICheckBox.o CGUIComboBox.o CGUIContextMenu.o CGUIEditBox.o CGUIEnvironment.o CGUIFileOpenDialog.o CGUIFont.o CGUIImage.o CGUIInOutFader.o CGUIListBox.o CGUIMenu.o CGUIMeshViewer.o CGUIMessageBox.o CGUIModalScreen.o CGUIScrollBar.o CGUISpinBox.o CGUISkin.o CGUIStaticText.o CGUITabControl.o CGUITable.o CGUIToolBar.o CGUIWindow.o CGUIColorSelectDialog.o CDefaultGUIElementFactory.o CGUISpriteBank.o CGUIImageList.o CGUITreeView.o
|
||||
ZLIBOBJ = zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o
|
||||
@@ -56,14 +56,14 @@ BZIP2OBJ = bzip2/blocksort.o bzip2/huffman.o bzip2/crctable.o bzip2/randtable.o
|
||||
EXTRAOBJ =
|
||||
LINKOBJ = $(IRRMESHOBJ) $(IRROBJ) $(IRRPARTICLEOBJ) $(IRRANIMOBJ) \
|
||||
$(IRRVIDEOOBJ) $(IRRSWRENDEROBJ) $(IRRIOOBJ) $(IRROTHEROBJ) \
|
||||
- $(IRRGUIOBJ) $(ZLIBOBJ) $(JPEGLIBOBJ) $(LIBPNGOBJ) $(LIBAESGM) \
|
||||
- $(BZIP2OBJ) $(EXTRAOBJ)
|
||||
+ $(IRRGUIOBJ) $(LIBAESGM) \
|
||||
+ $(EXTRAOBJ)
|
||||
|
||||
###############
|
||||
#Compiler flags
|
||||
-CXXINCS = -I../../include -Izlib -Ijpeglib -Ilibpng
|
||||
+CXXINCS = -I../../include # -Izlib -Ijpeglib -Ilibpng
|
||||
CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1
|
||||
-CXXFLAGS += -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
|
||||
+CXXFLAGS += -Wall -pipe -fno-exceptions -fstrict-aliasing
|
||||
ifndef NDEBUG
|
||||
CXXFLAGS += -g -D_DEBUG
|
||||
else
|
||||
@@ -88,7 +88,7 @@ STATIC_LIB = libIrrlicht.a
|
||||
LIB_PATH = ../../lib/$(SYSTEM)
|
||||
INSTALL_DIR = /usr/local/lib
|
||||
sharedlib install: SHARED_LIB = libIrrlicht.so
|
||||
-sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm
|
||||
+staticlib sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -lX11 -lz -lpng -ljpeg -lbz2
|
||||
staticlib sharedlib: CXXINCS += -I/usr/X11R6/include
|
||||
|
||||
#OSX specific options
|
||||
@@ -153,7 +153,8 @@ install install_osx:
|
||||
$(RM) -r $(INSTALL_DIR)/../include/irrlicht
|
||||
mkdir -p $(INSTALL_DIR)/../include/irrlicht
|
||||
cp ../../include/*.h $(INSTALL_DIR)/../include/irrlicht/
|
||||
- cp $(LIB_PATH)/$(SHARED_FULLNAME) $(INSTALL_DIR)
|
||||
+ cp $(LIB_PATH)/$(SHARED_FULLNAME) $(INSTALL_DIR) || true
|
||||
+ cp $(LIB_PATH)/$(STATIC_LIB) $(INSTALL_DIR) || true
|
||||
cd $(INSTALL_DIR) && ln -s -f $(SHARED_FULLNAME) $(SONAME)
|
||||
cd $(INSTALL_DIR) && ln -s -f $(SONAME) $(SHARED_LIB)
|
||||
# ldconfig -n $(INSTALL_DIR)
|
||||
--
|
||||
2.18.0
|
||||
|
Loading…
Reference in New Issue