Merge remote-tracking branch 'refs/remotes/Alexpux/master'
This commit is contained in:
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -2,14 +2,17 @@
|
||||
* text eol=lf
|
||||
|
||||
# Denote all files that are truly binary and should not be modified
|
||||
*.7z binary
|
||||
*.bz2 binary
|
||||
*.gz binary
|
||||
*.xz binary
|
||||
*.exe binary
|
||||
*.dll binary
|
||||
*.lzma binary
|
||||
*.msi binary
|
||||
*.tgz binary
|
||||
*.zip binary
|
||||
*.rar binary
|
||||
*.so binary
|
||||
*.lib binary
|
||||
*.a binary
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,5 +1,9 @@
|
||||
*.tar.xz
|
||||
*.tar.gz
|
||||
*.tar.bz2
|
||||
*.tgz
|
||||
*.zip
|
||||
*.rar
|
||||
*.sig
|
||||
*/src/
|
||||
*/pkg/
|
||||
48
FAIL_LIST.md
Normal file
48
FAIL_LIST.md
Normal file
@@ -0,0 +1,48 @@
|
||||
List of packages that currently fail to build
|
||||
=============================================
|
||||
|
||||
- blender
|
||||
|
||||
- cegui (waiting for 0.8.5 release)
|
||||
|
||||
- cling - need maintainer to it
|
||||
|
||||
- cocos2dx-git
|
||||
|
||||
- coq (OCAML issue)
|
||||
|
||||
- freerdp-git
|
||||
|
||||
- gprbuild-gpl
|
||||
|
||||
- gtkada
|
||||
|
||||
- itk
|
||||
|
||||
- ldns
|
||||
|
||||
- librocket-git
|
||||
|
||||
- nim
|
||||
|
||||
- nimble
|
||||
|
||||
- ocaml-lablgtk
|
||||
|
||||
- octave-hg
|
||||
|
||||
- ogre3d
|
||||
|
||||
- openshadinglanguage (Needs a legacy LLVM < 3.6 package due to JIT changes)
|
||||
|
||||
- perl (still not building for 32-bit) : ..\perl.h:3551:38: error: static assertion failed: "sizeof(PADOP) <= sizeof(SVOP)"
|
||||
|
||||
- plplot
|
||||
|
||||
- pitivi-git
|
||||
|
||||
- python-binwalk
|
||||
|
||||
- python-h5py
|
||||
|
||||
- xmlada-gpl
|
||||
7
TODO.md
7
TODO.md
@@ -37,3 +37,10 @@ What we need to do:
|
||||
fontconfig gcrypt speex theora matroska openal32 openjpeg
|
||||
theoradec theoraenc libopus libopencore-amrnb libopencore-amrwb
|
||||
libcelt0 libgnutls libgme libembl libspeexdsp
|
||||
|
||||
* Bison: Add path relocation when locating m4
|
||||
|
||||
* Add the Oyrol, Urho3D and Godot engines
|
||||
|
||||
* CMake Library Packages (all): Relocate find_package()-called scripts as
|
||||
was done for CGAL in https://github.com/Alexpux/MINGW-packages/commit/34ea54
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
diff -rupN FreeImage/FreeImage.2008.vcproj FreeImage-new/FreeImage.2008.vcproj
|
||||
--- FreeImage/FreeImage.2008.vcproj 2014-01-16 00:27:04.000000000 +0100
|
||||
+++ FreeImage-new/FreeImage.2008.vcproj 2014-01-16 00:49:42.334523250 +0100
|
||||
@@ -832,10 +828,6 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
- RelativePath="Source\FreeImageToolkit\JPEGTransform.cpp"
|
||||
- >
|
||||
- </File>
|
||||
- <File
|
||||
RelativePath="Source\FreeImageToolkit\MultigridPoissonSolver.cpp"
|
||||
>
|
||||
</File>
|
||||
diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
|
||||
--- FreeImage/Source/FreeImage.h 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage.h 2014-01-16 00:49:42.338523316 +0100
|
||||
@@ -456,6 +461,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
|
||||
FID_BAYER16x16 = 6 // Bayer ordered dispersed dot dithering (order 4 dithering matrix)
|
||||
};
|
||||
|
||||
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
|
||||
+ Fedora build of FreeImage as they require that FreeImage uses a private copy
|
||||
+ of libjpeg which is a no no because of security reasons. */
|
||||
+#if 0
|
||||
/** Lossless JPEG transformations
|
||||
Constants used in FreeImage_JPEGTransform
|
||||
*/
|
||||
@@ -469,6 +478,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
|
||||
FIJPEG_OP_ROTATE_180 = 6, // 180-degree rotation
|
||||
FIJPEG_OP_ROTATE_270 = 7 // 270-degree clockwise (or 90 ccw)
|
||||
};
|
||||
+#endif
|
||||
|
||||
/** Tone mapping operators.
|
||||
Constants used in FreeImage_ToneMapping.
|
||||
@@ -704,7 +714,6 @@ typedef void (DLL_CALLCONV *FI_InitProc)
|
||||
#define PNG_DEFAULT 0
|
||||
#define PNG_IGNOREGAMMA 1 //! loading: avoid gamma correction
|
||||
#define PNG_Z_BEST_SPEED 0x0001 //! save using ZLib level 1 compression flag (default value is 6)
|
||||
-#define PNG_Z_DEFAULT_COMPRESSION 0x0006 //! save using ZLib level 6 compression flag (default recommended value)
|
||||
#define PNG_Z_BEST_COMPRESSION 0x0009 //! save using ZLib level 9 compression flag (default value is 6)
|
||||
#define PNG_Z_NO_COMPRESSION 0x0100 //! save without ZLib compression
|
||||
#define PNG_INTERLACED 0x0200 //! save using Adam7 interlacing (use | to combine with other save flags)
|
||||
@@ -1048,14 +1057,19 @@ DLL_API FIBITMAP *DLL_CALLCONV FreeImage
|
||||
// JPEG lossless transformation routines
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
|
||||
+ Fedora build of FreeImage as they require that FreeImage uses a private copy
|
||||
+ of libjpeg which is a no no because of security reasons. */
|
||||
+#if 0
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCropU(const wchar_t *src_file, const wchar_t *dst_file, int left, int top, int right, int bottom);
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformFromHandle(FreeImageIO* src_io, fi_handle src_handle, FreeImageIO* dst_io, fi_handle dst_handle, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
+#endif
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
@@ -1,405 +0,0 @@
|
||||
--- FreeImage/Makefile.fip.orig 2014-04-16 18:58:24.825800000 +0400
|
||||
+++ FreeImage/Makefile.fip 2014-04-16 19:12:58.956000000 +0400
|
||||
@@ -1,81 +1,97 @@
|
||||
-# Linux makefile for FreeImagePlus
|
||||
+# Mingw makefile for FreeImagePlus
|
||||
|
||||
# This file can be generated by ./genfipsrclist.sh
|
||||
include fipMakefile.srcs
|
||||
|
||||
-# General configuration variables:
|
||||
-DESTDIR ?= /
|
||||
-INCDIR ?= $(DESTDIR)/usr/include
|
||||
-INSTALLDIR ?= $(DESTDIR)/usr/lib
|
||||
-
|
||||
-# Converts cr/lf to just lf
|
||||
-DOS2UNIX = dos2unix
|
||||
-
|
||||
-LIBRARIES = -lstdc++
|
||||
-
|
||||
-MODULES = $(SRCS:.c=.o)
|
||||
-MODULES := $(MODULES:.cpp=.o)
|
||||
-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
|
||||
-# OpenJPEG
|
||||
-CFLAGS += -DOPJ_STATIC
|
||||
-# LibRaw
|
||||
-CFLAGS += -DNO_LCMS
|
||||
-# LibJXR
|
||||
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
|
||||
-CFLAGS += $(INCLUDE)
|
||||
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
|
||||
-# LibJXR
|
||||
-CXXFLAGS += -D__ANSI__
|
||||
-CXXFLAGS += $(INCLUDE)
|
||||
-
|
||||
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
|
||||
- CFLAGS += -fPIC
|
||||
- CXXFLAGS += -fPIC
|
||||
-endif
|
||||
+CC = $(MINGW_TARGET)-gcc
|
||||
+CXX = $(MINGW_TARGET)-g++
|
||||
+LD = $(MINGW_TARGET)-g++
|
||||
+AR = ar
|
||||
+DLLTOOL = dlltool
|
||||
+RC = windres
|
||||
+PKGCONFIG = pkg-config
|
||||
+
|
||||
+CP = cp
|
||||
+MD = mkdir
|
||||
+RM = rm
|
||||
+
|
||||
+# General configuration variables.
|
||||
+DESTDIR ?= $(SystemRoot)
|
||||
+INSTALLDIR ?= $(DESTDIR)/system32
|
||||
+DISTDIR ?= Dist
|
||||
+SRCDIR ?= Wrapper/FreeImagePlus/
|
||||
+HEADER = FreeImagePlus.h
|
||||
+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc
|
||||
+
|
||||
+# Uncomment this variable to make a static library. This may
|
||||
+# also be specified as an environment variable and can hold
|
||||
+# any of STATIC and SHARED and must be in uppercase letters.
|
||||
+# The FreeImage library type defaults to SHARED.
|
||||
+FREEIMAGE_LIBRARY_TYPE ?= SHARED
|
||||
+
|
||||
+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
|
||||
+WIN32_SHARED_FLAGS = -DFIP_EXPORTS
|
||||
+
|
||||
+# Converts cr/lf to just lf
|
||||
+DOS2UNIX = dos2unix
|
||||
+
|
||||
+LIBRARIES = -lstdc++ -lfreeimage-$(VER_MAJOR).$(VER_MINOR) -L.
|
||||
+MODULES = $(SRCS:.c=.o)
|
||||
+MODULES := $(MODULES:.cpp=.o)
|
||||
+RESOURCE = $(RCFILE:.rc=.coff)
|
||||
+CFLAGS += -ISource $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
|
||||
+CXXFLAGS += -ISource $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
|
||||
+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
|
||||
+LDFLAGS += -LDist -lfreeimage -lgdi32
|
||||
|
||||
-TARGET = freeimageplus
|
||||
+TARGET = freeimageplus
|
||||
STATICLIB = lib$(TARGET).a
|
||||
-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
|
||||
-LIBNAME = lib$(TARGET).so
|
||||
-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
|
||||
-HEADER = Source/FreeImage.h
|
||||
-HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h
|
||||
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
|
||||
+IMPORTLIB = lib$(TARGET).dll.a
|
||||
+EXPORTLIB = $(TARGET).exp
|
||||
+SOLIBNAME = $(SHAREDLIB)
|
||||
|
||||
+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
|
||||
+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
|
||||
|
||||
-default: all
|
||||
-
|
||||
-all: dist
|
||||
+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
|
||||
+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
|
||||
|
||||
-dist: FreeImage
|
||||
- cp *.a Dist
|
||||
- cp *.so Dist
|
||||
- cp Source/FreeImage.h Dist
|
||||
- cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist
|
||||
+default: all
|
||||
|
||||
-dos2unix:
|
||||
- @$(DOS2UNIX) $(SRCS)
|
||||
+all: $(TARGETLIB) $(TARGETDIST)
|
||||
|
||||
-FreeImage: $(STATICLIB) $(SHAREDLIB)
|
||||
+rebuild: clean all
|
||||
|
||||
-.c.o:
|
||||
+%.o: %.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
-.cpp.o:
|
||||
+%.o: %.cpp
|
||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
|
||||
+%.coff: %.rc
|
||||
+ $(RC) $(RCFLAGS) -o $@ $<
|
||||
+
|
||||
+$(DISTDIR)/%: %
|
||||
+ $(CP) $< $@
|
||||
+
|
||||
+$(DISTDIR)/%: $(SRCDIR)/%
|
||||
+ $(CP) $< $@
|
||||
+
|
||||
$(STATICLIB): $(MODULES)
|
||||
- $(AR) r $@ $(MODULES)
|
||||
+ $(AR) rs $@ $(MODULES)
|
||||
+
|
||||
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
|
||||
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
|
||||
+
|
||||
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
|
||||
+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
|
||||
|
||||
-$(SHAREDLIB): $(MODULES)
|
||||
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
+$(DISTDIR):
|
||||
+ $(MD) $(DISTDIR)
|
||||
|
||||
-install:
|
||||
- install -d $(INCDIR) $(INSTALLDIR)
|
||||
- install -m 644 -o root -g root $(HEADER) $(INCDIR)
|
||||
- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
|
||||
- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
|
||||
- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
|
||||
+$(TARGETDIST): $(DISTDIR)
|
||||
|
||||
clean:
|
||||
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
|
||||
+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
|
||||
|
||||
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
|
||||
--- FreeImage/Makefile.gnu 2014-01-16 00:27:04.000000000 +0100
|
||||
+++ FreeImage-new/Makefile.gnu 2014-01-16 00:49:42.335523267 +0100
|
||||
@@ -11,7 +11,8 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
|
||||
# Converts cr/lf to just lf
|
||||
DOS2UNIX = dos2unix
|
||||
|
||||
-LIBRARIES = -lstdc++
|
||||
+INCLUDE += $(shell pkg-config --cflags libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp)
|
||||
+LIBRARIES = -lstdc++ $(shell pkg-config --libs libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -lwebp
|
||||
|
||||
MODULES = $(SRCS:.c=.o)
|
||||
MODULES := $(MODULES:.cpp=.o)
|
||||
--- FreeImage/Makefile.mingw.orig 2014-03-15 22:52:28.000000000 +0400
|
||||
+++ FreeImage/Makefile.mingw 2014-04-16 19:12:32.030400000 +0400
|
||||
@@ -1,136 +1,94 @@
|
||||
-# MinGW makefile for FreeImage
|
||||
-
|
||||
-# This file can be generated by ./gensrclist.sh
|
||||
-include Makefile.srcs
|
||||
-
|
||||
-# General configuration variables.
|
||||
-DESTDIR ?= $(SystemRoot)
|
||||
-INSTALLDIR ?= $(DESTDIR)/system32
|
||||
-DISTDIR ?= Dist
|
||||
-SRCDIR ?= Source
|
||||
-HEADER = FreeImage.h
|
||||
-RCFILE = FreeImage.rc
|
||||
-
|
||||
-# Uncomment this variable to make a static library. This may
|
||||
-# also be specified as an environment variable and can hold
|
||||
-# any of STATIC and SHARED and must be in uppercase letters.
|
||||
-# Default: SHARED
|
||||
-#FREEIMAGE_LIBRARY_TYPE = STATIC
|
||||
-
|
||||
-# Redefine the compiler (CC defaults to ´cc´ for MinGW's make,
|
||||
-# however there's only ´gcc´ available with MinGW).
|
||||
-CC = gcc
|
||||
-
|
||||
-# Redefine the linker (we use ´g++´ for linking, since MinGW's
|
||||
-# command ´ld´ comes with wrong (Linux) standard library search
|
||||
-# paths).
|
||||
-LD = g++
|
||||
-
|
||||
-#Define the ´dlltool´ command.
|
||||
-DLLTOOL = dlltool
|
||||
-
|
||||
-#Define the resource compiler.
|
||||
-RC = windres
|
||||
-
|
||||
-# Define the ´copy´ command.
|
||||
-CP = cp
|
||||
-
|
||||
-# Define the ´mkdir´ command.
|
||||
-MD = mkdir
|
||||
-
|
||||
-# Define the ´remove´ command.
|
||||
-RM = rm
|
||||
-
|
||||
-# Define additional libraries needed.
|
||||
-# libstdc++ is included by default with MinGW, however for
|
||||
-# WIN32 based builds, LibRawLite needs the winsock libraries.
|
||||
-LIBRARIES = -lws2_32
|
||||
-
|
||||
-# Define some additional symboles needed for WIN32 based builds.
|
||||
-WIN32_CFLAGS = -DWINVER=0x0500 $(LIB_TYPE_FLAGS) -DOPJ_STATIC
|
||||
-WIN32_CXXFLAGS = $(WIN32_CFLAGS) -DLIBRAW_NODLL
|
||||
-
|
||||
-# Workaround for LibRawLite, which does not include C++ header
|
||||
-# file stdexcept, which is casually included with MSVC but not
|
||||
-# with MinGW. This can be removed after LibRawLite got control
|
||||
-# over its includes again.
|
||||
-WIN32_CXXFLAGS += -include stdexcept
|
||||
-
|
||||
-# Define DLL image header information flags for the linker.
|
||||
-WIN32_LDFLAGS = -Wl,--subsystem,windows:5.0,--major-os-version,5
|
||||
-
|
||||
-WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
|
||||
-WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
|
||||
-
|
||||
-MODULES = $(SRCS:.c=.o)
|
||||
-MODULES := $(MODULES:.cpp=.o)
|
||||
-RESOURCE = $(RCFILE:.rc=.coff)
|
||||
-CFLAGS ?= -O3 -fexceptions -DNDEBUG -DDISABLE_PERF_MEASUREMENT $(WIN32_CFLAGS)
|
||||
-CFLAGS += $(INCLUDE)
|
||||
-CXXFLAGS ?= -O3 -fexceptions -Wno-ctor-dtor-privacy -DNDEBUG $(WIN32_CXXFLAGS)
|
||||
-CXXFLAGS += $(INCLUDE)
|
||||
-RCFLAGS ?= -DNDEBUG
|
||||
-LDFLAGS ?= -s -shared -static -Wl,-soname,$(SOLIBNAME) $(WIN32_LDFLAGS)
|
||||
-DLLTOOLFLAGS ?= --add-stdcall-underscore
|
||||
-
|
||||
-TARGET = FreeImage
|
||||
-STATICLIB = lib$(TARGET).a
|
||||
-SHAREDLIB = $(TARGET).dll
|
||||
-IMPORTLIB = $(TARGET).lib
|
||||
-EXPORTLIB = $(TARGET).exp
|
||||
-SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR)
|
||||
-
|
||||
-DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
|
||||
-DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
|
||||
-
|
||||
-# The FreeImage library type defaults to SHARED.
|
||||
-FREEIMAGE_LIBRARY_TYPE ?= SHARED
|
||||
-
|
||||
-TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
|
||||
-TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
|
||||
-LIB_TYPE_FLAGS = $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
|
||||
-
|
||||
-default: all
|
||||
-
|
||||
-all: mkdist
|
||||
-
|
||||
-rebuild: clean all
|
||||
-
|
||||
-mkdist: FreeImage $(TARGETDIST)
|
||||
-
|
||||
-FreeImage: $(TARGETLIB)
|
||||
-
|
||||
-%.o: %.c
|
||||
- $(CC) $(CFLAGS) -c $< -o $@
|
||||
-
|
||||
-%.o: %.cpp
|
||||
- $(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
-
|
||||
-%.coff: %.rc
|
||||
- $(RC) $(RCFLAGS) -o $@ $<
|
||||
-
|
||||
-$(DISTDIR)/%: %
|
||||
- $(CP) $< $@
|
||||
-
|
||||
-$(DISTDIR)/%: $(SRCDIR)/%
|
||||
- $(CP) $< $@
|
||||
-
|
||||
-$(STATICLIB): $(MODULES)
|
||||
- $(AR) rs $@ $(MODULES)
|
||||
-
|
||||
-$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
|
||||
- $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
|
||||
-
|
||||
-$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
|
||||
- $(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES)
|
||||
-
|
||||
-$(DISTDIR):
|
||||
- $(MD) $(DISTDIR)
|
||||
-
|
||||
-$(TARGETDIST): $(DISTDIR)
|
||||
-
|
||||
-install:
|
||||
- $(CP) $(SHAREDLIB) $(INSTALLDIR)
|
||||
-
|
||||
-clean:
|
||||
- $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
|
||||
+# MinGW makefile for FreeImage
|
||||
+
|
||||
+# This file can be generated by ./gensrclist.sh
|
||||
+include Makefile.srcs
|
||||
+
|
||||
+CC = gcc
|
||||
+CXX = g++
|
||||
+LD = g++
|
||||
+AR = ar
|
||||
+DLLTOOL = dlltool
|
||||
+RC = windres
|
||||
+PKGCONFIG = pkg-config
|
||||
+
|
||||
+CP = cp
|
||||
+MD = mkdir
|
||||
+RM = rm
|
||||
+
|
||||
+# General configuration variables.
|
||||
+DESTDIR ?= $(SystemRoot)
|
||||
+INSTALLDIR ?= $(DESTDIR)/system32
|
||||
+DISTDIR ?= Dist
|
||||
+SRCDIR ?= Source
|
||||
+HEADER = FreeImage.h
|
||||
+RCFILE = FreeImage.rc
|
||||
+
|
||||
+# Uncomment this variable to make a static library. This may
|
||||
+# also be specified as an environment variable and can hold
|
||||
+# any of STATIC and SHARED and must be in uppercase letters.
|
||||
+# The FreeImage library type defaults to SHARED.
|
||||
+FREEIMAGE_LIBRARY_TYPE ?= SHARED
|
||||
+
|
||||
+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
|
||||
+WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
|
||||
+
|
||||
+MODULES = $(SRCS:.c=.o)
|
||||
+MODULES := $(MODULES:.cpp=.o)
|
||||
+RESOURCE = $(RCFILE:.rc=.coff)
|
||||
+CFLAGS += $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
|
||||
+CFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp)
|
||||
+CXXFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
|
||||
+CXXFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp)
|
||||
+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
|
||||
+LDFLAGS += $(shell $(PKGCONFIG) --libs libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg
|
||||
+
|
||||
+TARGET = freeimage
|
||||
+STATICLIB = lib$(TARGET).a
|
||||
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
|
||||
+IMPORTLIB = lib$(TARGET).dll.a
|
||||
+EXPORTLIB = $(TARGET).exp
|
||||
+SOLIBNAME = $(SHAREDLIB)
|
||||
+
|
||||
+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
|
||||
+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
|
||||
+
|
||||
+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
|
||||
+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
|
||||
+
|
||||
+default: all
|
||||
+
|
||||
+all: $(TARGETLIB) $(TARGETDIST)
|
||||
+
|
||||
+rebuild: clean all
|
||||
+
|
||||
+%.o: %.c
|
||||
+ $(CC) $(CFLAGS) -c $< -o $@
|
||||
+
|
||||
+%.o: %.cpp
|
||||
+ $(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
+
|
||||
+%.coff: %.rc
|
||||
+ $(RC) $(RCFLAGS) -o $@ $<
|
||||
+
|
||||
+$(DISTDIR)/%: %
|
||||
+ $(CP) $< $@
|
||||
+
|
||||
+$(DISTDIR)/%: $(SRCDIR)/%
|
||||
+ $(CP) $< $@
|
||||
+
|
||||
+$(STATICLIB): $(MODULES)
|
||||
+ $(AR) rs $@ $(MODULES)
|
||||
+
|
||||
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
|
||||
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
|
||||
+
|
||||
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
|
||||
+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
|
||||
+
|
||||
+$(DISTDIR):
|
||||
+ $(MD) $(DISTDIR)
|
||||
+
|
||||
+$(TARGETDIST): $(DISTDIR)
|
||||
+
|
||||
+clean:
|
||||
+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
|
||||
@@ -1,594 +0,0 @@
|
||||
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
|
||||
--- FreeImage/genfipsrclist.sh 2014-01-16 00:27:04.000000000 +0100
|
||||
+++ FreeImage-new/genfipsrclist.sh 2014-01-16 00:49:42.334523250 +0100
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
|
||||
+DIRLIST=" Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
|
||||
|
||||
|
||||
echo "VER_MAJOR = 3" > fipMakefile.srcs
|
||||
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
|
||||
--- FreeImage/gensrclist.sh 2014-01-16 00:27:04.000000000 +0100
|
||||
+++ FreeImage-new/gensrclist.sh 2014-01-16 00:49:42.335523267 +0100
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
||||
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
||||
|
||||
echo "VER_MAJOR = 3" > Makefile.srcs
|
||||
echo "VER_MINOR = 16.0" >> Makefile.srcs
|
||||
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
|
||||
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:49:42.335523267 +0100
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibOpenJPEG/openjpeg.h"
|
||||
+#include <openjpeg.h>
|
||||
#include "J2KHelper.h"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:49:42.336523283 +0100
|
||||
@@ -22,16 +22,16 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfIO.h"
|
||||
-#include "../OpenEXR/Iex/Iex.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfRgba.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfArray.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
|
||||
-#include "../OpenEXR/Half/half.h"
|
||||
+#include <OpenEXR/ImfIO.h>
|
||||
+#include <OpenEXR/Iex.h>
|
||||
+#include <OpenEXR/ImfOutputFile.h>
|
||||
+#include <OpenEXR/ImfInputFile.h>
|
||||
+#include <OpenEXR/ImfRgbaFile.h>
|
||||
+#include <OpenEXR/ImfChannelList.h>
|
||||
+#include <OpenEXR/ImfRgba.h>
|
||||
+#include <OpenEXR/ImfArray.h>
|
||||
+#include <OpenEXR/ImfPreviewImage.h>
|
||||
+#include <OpenEXR/half.h>
|
||||
|
||||
|
||||
// ==========================================================
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:49:42.336523283 +0100
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibOpenJPEG/openjpeg.h"
|
||||
+#include <openjpeg.h>
|
||||
#include "J2KHelper.h"
|
||||
|
||||
// ==========================================================
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:49:42.336523283 +0100
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibOpenJPEG/openjpeg.h"
|
||||
+#include <openjpeg.h>
|
||||
#include "J2KHelper.h"
|
||||
|
||||
// ==========================================================
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:49:42.336523283 +0100
|
||||
@@ -35,9 +35,9 @@ extern "C" {
|
||||
#undef FAR
|
||||
#include <setjmp.h>
|
||||
|
||||
-#include "../LibJPEG/jinclude.h"
|
||||
-#include "../LibJPEG/jpeglib.h"
|
||||
-#include "../LibJPEG/jerror.h"
|
||||
+#include <stdio.h>
|
||||
+#include <jpeglib.h>
|
||||
+#include <jerror.h>
|
||||
}
|
||||
|
||||
#include "FreeImage.h"
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:49:42.337523300 +0100
|
||||
@@ -37,8 +37,8 @@
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
-#include "../ZLib/zlib.h"
|
||||
-#include "../LibPNG/png.h"
|
||||
+#include <zlib.h>
|
||||
+#include <png.h>
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in
|
||||
tag = FreeImage_CreateTag();
|
||||
if(!tag) return FALSE;
|
||||
|
||||
+#ifdef PNG_iTXt_SUPPORTED
|
||||
DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length);
|
||||
+#else
|
||||
+ DWORD tag_length = text_ptr[i].text_length;
|
||||
+#endif
|
||||
|
||||
FreeImage_SetTagLength(tag, tag_length);
|
||||
FreeImage_SetTagCount(tag, tag_length);
|
||||
@@ -153,10 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i
|
||||
text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text"
|
||||
text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
|
||||
text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
|
||||
+#ifdef PNG_iTXt_SUPPORTED
|
||||
text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
|
||||
text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
|
||||
text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
|
||||
-
|
||||
+#endif
|
||||
// set the tag
|
||||
png_set_text(png_ptr, info_ptr, &text_metadata, 1);
|
||||
|
||||
@@ -175,10 +180,11 @@ WriteMetadata(png_structp png_ptr, png_i
|
||||
text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text"
|
||||
text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
|
||||
text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
|
||||
+#ifdef PNG_iTXt_SUPPORTED
|
||||
text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
|
||||
text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
|
||||
text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
|
||||
-
|
||||
+#endif
|
||||
// set the tag
|
||||
png_set_text(png_ptr, info_ptr, &text_metadata, 1);
|
||||
bResult &= TRUE;
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:55:13.692904877 +0100
|
||||
@@ -19,7 +19,7 @@
|
||||
// Use at your own risk!
|
||||
// ==========================================================
|
||||
|
||||
-#include "../LibRawLite/libraw/libraw.h"
|
||||
+#include <libraw/libraw.h>
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:49:42.337523300 +0100
|
||||
@@ -37,9 +37,9 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffio.h>
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
-#include "../OpenEXR/Half/half.h"
|
||||
+#include <half.h>
|
||||
|
||||
#include "FreeImageIO.h"
|
||||
#include "PSDParser.h"
|
||||
@@ -202,27 +202,9 @@ TIFFFdOpen(thandle_t handle, const char
|
||||
_tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc,
|
||||
_tiffSizeProc, _tiffMapProc, _tiffUnmapProc);
|
||||
|
||||
- // Warning: tif_fd is declared as 'int' currently (see libTIFF),
|
||||
- // may result in incorrect file pointers inside libTIFF on
|
||||
- // 64bit machines (sizeof(int) != sizeof(long)).
|
||||
- // Needs to be fixed within libTIFF.
|
||||
- if (tif) {
|
||||
- tif->tif_fd = (long)handle;
|
||||
- }
|
||||
-
|
||||
return tif;
|
||||
}
|
||||
|
||||
-/**
|
||||
-Open a TIFF file for reading or writing
|
||||
-@param name
|
||||
-@param mode
|
||||
-*/
|
||||
-TIFF*
|
||||
-TIFFOpen(const char* name, const char* mode) {
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// ----------------------------------------------------------
|
||||
// TIFF library FreeImage-specific routines.
|
||||
// ----------------------------------------------------------
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginG3.cpp FreeImage-new/Source/FreeImage/PluginG3.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginG3.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginG3.cpp 2014-01-16 00:49:42.336523283 +0100
|
||||
@@ -20,7 +20,7 @@
|
||||
// Use at your own risk!
|
||||
// ==========================================================
|
||||
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffiop.h>
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:49:42.337523300 +0100
|
||||
@@ -37,10 +37,10 @@
|
||||
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
|
||||
-#include "../LibWebP/src/webp/decode.h"
|
||||
-#include "../LibWebP/src/webp/encode.h"
|
||||
-#include "../LibWebP/src/enc/vp8enci.h"
|
||||
-#include "../LibWebP/src/webp/mux.h"
|
||||
+#include <webp/decode.h>
|
||||
+#include <webp/encode.h>
|
||||
+//#include "../LibWebP/src/enc/vp8enci.h"
|
||||
+#include <webp/mux.h>
|
||||
|
||||
// ==========================================================
|
||||
// Plugin Interface
|
||||
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
|
||||
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:49:42.338523316 +0100
|
||||
@@ -19,10 +19,9 @@
|
||||
// Use at your own risk!
|
||||
// ==========================================================
|
||||
|
||||
-#include "../ZLib/zlib.h"
|
||||
+#include <zlib.h>
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
|
||||
|
||||
/**
|
||||
Compresses a source buffer into a target buffer, using the ZLib library.
|
||||
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
|
||||
return 0;
|
||||
case Z_OK: {
|
||||
// patch header, setup crc and length (stolen from mod_trace_output)
|
||||
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
|
||||
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
|
||||
crc = crc32(crc, source, source_size);
|
||||
memcpy(target + 4 + dest_len, &crc, 4);
|
||||
memcpy(target + 8 + dest_len, &source_size, 4);
|
||||
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
|
||||
--- FreeImage/Source/Metadata/XTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2014-01-16 00:49:42.338523316 +0100
|
||||
@@ -29,13 +29,22 @@
|
||||
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
|
||||
#endif
|
||||
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffiop.h>
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
#include "FreeImageTag.h"
|
||||
#include "FIRational.h"
|
||||
|
||||
+/*
|
||||
+ * Caveat emperor this is a private libtiff functions which we need,
|
||||
+ * there is no better solution I'm afraid.
|
||||
+ */
|
||||
+extern "C"
|
||||
+{
|
||||
+ int _TIFFDataSize(TIFFDataType type);
|
||||
+}
|
||||
+
|
||||
// ----------------------------------------------------------
|
||||
// Extended TIFF Directory GEO Tag Support
|
||||
// ----------------------------------------------------------
|
||||
@@ -205,7 +214,7 @@ tiff_write_geotiff_profile(TIFF *tif, FI
|
||||
Read a single exif tag
|
||||
*/
|
||||
static BOOL
|
||||
-tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, TIFFDirectory *td, uint32 tag) {
|
||||
+tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, uint32 tag) {
|
||||
const TIFFField *fip;
|
||||
uint32 value_count;
|
||||
int mem_alloc = 0;
|
||||
@@ -226,8 +235,8 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- if(fip->field_passcount) { //<- "passcount" means "returns count"
|
||||
- if (fip->field_readcount != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
|
||||
+ if(TIFFFieldPassCount(fip)) { //<- "passcount" means "returns count"
|
||||
+ if (TIFFFieldReadCount(fip) != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
|
||||
|
||||
// assume TIFF_VARIABLE (uses SHORT count)
|
||||
uint16 value_count16;
|
||||
@@ -244,35 +253,37 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
|
||||
// determine count
|
||||
|
||||
- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2) {
|
||||
+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE || TIFFFieldReadCount(fip) == TIFF_VARIABLE2) {
|
||||
value_count = 1;
|
||||
- } else if (fip->field_readcount == TIFF_SPP) {
|
||||
- value_count = td->td_samplesperpixel;
|
||||
+ } else if (TIFFFieldReadCount(fip) == TIFF_SPP) {
|
||||
+ uint16 spp;
|
||||
+ TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp);
|
||||
+ value_count = spp;
|
||||
} else {
|
||||
- value_count = fip->field_readcount;
|
||||
+ value_count = TIFFFieldReadCount(fip);
|
||||
}
|
||||
|
||||
// access fields as pointers to data
|
||||
// (### determining this is NOT robust... and hardly can be. It is implemented looking the _TIFFVGetField code)
|
||||
|
||||
- if(fip->field_tag == TIFFTAG_TRANSFERFUNCTION) {
|
||||
+ if(TIFFFieldTag(fip) == TIFFTAG_TRANSFERFUNCTION) {
|
||||
// reading this tag cause a bug probably located somewhere inside libtiff
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
- if ((fip->field_type == TIFF_ASCII
|
||||
- || fip->field_readcount == TIFF_VARIABLE
|
||||
- || fip->field_readcount == TIFF_VARIABLE2
|
||||
- || fip->field_readcount == TIFF_SPP
|
||||
+ if ((TIFFFieldDataType(fip) == TIFF_ASCII
|
||||
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE
|
||||
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2
|
||||
+ || TIFFFieldReadCount(fip) == TIFF_SPP
|
||||
|| value_count > 1)
|
||||
|
||||
- && fip->field_tag != TIFFTAG_PAGENUMBER
|
||||
- && fip->field_tag != TIFFTAG_HALFTONEHINTS
|
||||
- && fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING
|
||||
- && fip->field_tag != TIFFTAG_DOTRANGE
|
||||
+ && TIFFFieldTag(fip) != TIFFTAG_PAGENUMBER
|
||||
+ && TIFFFieldTag(fip) != TIFFTAG_HALFTONEHINTS
|
||||
+ && TIFFFieldTag(fip) != TIFFTAG_YCBCRSUBSAMPLING
|
||||
+ && TIFFFieldTag(fip) != TIFFTAG_DOTRANGE
|
||||
|
||||
- && fip->field_tag != TIFFTAG_BITSPERSAMPLE //<- these two are tricky -
|
||||
- && fip->field_tag != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
|
||||
+ && TIFFFieldTag(fip) != TIFFTAG_BITSPERSAMPLE //<- these two are tricky:
|
||||
+ && TIFFFieldTag(fip) != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
|
||||
) {
|
||||
if(TIFFGetField(tif, tag, &raw_data) != 1) {
|
||||
return TRUE;
|
||||
@@ -281,7 +292,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
|
||||
// access fields as values
|
||||
|
||||
- const int value_size = _TIFFDataSize(fip->field_type);
|
||||
+ const int value_size = _TIFFDataSize((TIFFFieldDataType(fip)));
|
||||
raw_data = _TIFFmalloc(value_size * value_count);
|
||||
mem_alloc = 1;
|
||||
int ok = FALSE;
|
||||
@@ -302,7 +313,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
- FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", fip->field_name);
|
||||
+ FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", TIFFFieldName(fip));
|
||||
break;
|
||||
}
|
||||
if(ok != 1) {
|
||||
@@ -325,59 +336,59 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
FreeImage_SetTagID(fitag, (WORD)tag);
|
||||
FreeImage_SetTagKey(fitag, key);
|
||||
|
||||
- switch(fip->field_type) {
|
||||
+ switch(TIFFFieldDataType(fip)) {
|
||||
case TIFF_BYTE:
|
||||
FreeImage_SetTagType(fitag, FIDT_BYTE);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_UNDEFINED:
|
||||
FreeImage_SetTagType(fitag, FIDT_UNDEFINED);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SBYTE:
|
||||
FreeImage_SetTagType(fitag, FIDT_SBYTE);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SHORT:
|
||||
FreeImage_SetTagType(fitag, FIDT_SHORT);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SSHORT:
|
||||
FreeImage_SetTagType(fitag, FIDT_SSHORT);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_LONG:
|
||||
FreeImage_SetTagType(fitag, FIDT_LONG);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_IFD:
|
||||
FreeImage_SetTagType(fitag, FIDT_IFD);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SLONG:
|
||||
FreeImage_SetTagType(fitag, FIDT_SLONG);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
@@ -392,7 +403,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
rvalue[2*i+1] = rational.getDenominator();
|
||||
}
|
||||
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, rvalue);
|
||||
free(rvalue);
|
||||
@@ -409,7 +420,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
rvalue[2*i+1] = rational.getDenominator();
|
||||
}
|
||||
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, rvalue);
|
||||
free(rvalue);
|
||||
@@ -418,35 +429,35 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
||||
|
||||
case TIFF_FLOAT:
|
||||
FreeImage_SetTagType(fitag, FIDT_FLOAT);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_DOUBLE:
|
||||
FreeImage_SetTagType(fitag, FIDT_DOUBLE);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_LONG8: // BigTIFF 64-bit unsigned integer
|
||||
FreeImage_SetTagType(fitag, FIDT_LONG8);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_IFD8: // BigTIFF 64-bit unsigned integer (offset)
|
||||
FreeImage_SetTagType(fitag, FIDT_IFD8);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
|
||||
case TIFF_SLONG8: // BigTIFF 64-bit signed integer
|
||||
FreeImage_SetTagType(fitag, FIDT_SLONG8);
|
||||
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
||||
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
||||
FreeImage_SetTagCount(fitag, value_count);
|
||||
FreeImage_SetTagValue(fitag, raw_data);
|
||||
break;
|
||||
@@ -489,16 +500,16 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
|
||||
|
||||
TagLib& tagLib = TagLib::instance();
|
||||
|
||||
- TIFFDirectory *td = &tif->tif_dir;
|
||||
-
|
||||
count = (short) TIFFGetTagListCount(tif);
|
||||
for(i = 0; i < count; i++) {
|
||||
uint32 tag = TIFFGetTagListEntry(tif, i);
|
||||
// read the tag
|
||||
- if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, td, tag))
|
||||
+ if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, tag))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+/* Disabled for Fedora as it is using internal library structures. */
|
||||
+#if 0
|
||||
// we want to know values of standard tags too!!
|
||||
|
||||
// loop over all Core Directory Tags
|
||||
@@ -533,13 +544,14 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
|
||||
|
||||
// process *all* other tags (some will be ignored)
|
||||
|
||||
- tiff_read_exif_tag(tif, md_model, dib, tagLib, td, fld->field_tag);
|
||||
+ tiff_read_exif_tag(tif, md_model, dib, tagLib, fld->field_tag);
|
||||
|
||||
|
||||
lastTag = fld->field_tag;
|
||||
}
|
||||
|
||||
}
|
||||
+#endif
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -611,6 +623,10 @@ Write all known exif tags
|
||||
*/
|
||||
BOOL
|
||||
tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) {
|
||||
+/* Disabled for Fedora as it is using internal library structures. Siberia
|
||||
+ * winter on upstream developer! :-) */
|
||||
+ return FALSE;
|
||||
+#if 0
|
||||
char defaultKey[16];
|
||||
|
||||
// only EXIF_MAIN so far
|
||||
@@ -662,4 +678,5 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
+#endif
|
||||
}
|
||||
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
|
||||
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:49:42.338523316 +0100
|
||||
@@ -26,10 +26,10 @@
|
||||
#undef FAR
|
||||
#include <setjmp.h>
|
||||
|
||||
-#include "../LibJPEG/jinclude.h"
|
||||
-#include "../LibJPEG/jpeglib.h"
|
||||
-#include "../LibJPEG/jerror.h"
|
||||
-#include "../LibJPEG/transupp.h"
|
||||
+#include <jinclude.h>
|
||||
+#include <jpeglib.h>
|
||||
+#include <jerror.h>
|
||||
+#include <transupp.h>
|
||||
}
|
||||
|
||||
#include "FreeImage.h"
|
||||
diff -rupN FreeImage/Source/LibJXR/image/sys/strcodec.c FreeImage-new/Source/LibJXR/image/sys/strcodec.c
|
||||
--- FreeImage/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:27:03.000000000 +0100
|
||||
+++ FreeImage-new/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:49:42.338523316 +0100
|
||||
@@ -664,7 +664,7 @@
|
||||
//================================================================
|
||||
// Memory access functions
|
||||
//================================================================
|
||||
-#if (defined(WIN32) && !defined(UNDER_CE) && !defined(__MINGW32__)) || (defined(UNDER_CE) && defined(_ARM_))
|
||||
+#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_))
|
||||
// WinCE ARM and Desktop x86
|
||||
#else
|
||||
// other platform
|
||||
216
mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch
Normal file
216
mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch
Normal file
@@ -0,0 +1,216 @@
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginPCX.cpp FreeImage-new/Source/FreeImage/PluginPCX.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginPCX.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginPCX.cpp 2015-09-05 02:44:55.429436425 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
// Constants + headers
|
||||
// ----------------------------------------------------------
|
||||
|
||||
-#define IO_BUF_SIZE 2048
|
||||
+#define PCX_IO_BUF_SIZE 2048
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
@@ -120,17 +120,17 @@ readline(FreeImageIO &io, fi_handle hand
|
||||
|
||||
while (length--) {
|
||||
if (count == 0) {
|
||||
- if (*ReadPos >= IO_BUF_SIZE - 1 ) {
|
||||
- if (*ReadPos == IO_BUF_SIZE - 1) {
|
||||
+ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) {
|
||||
+ if (*ReadPos == PCX_IO_BUF_SIZE - 1) {
|
||||
// we still have one BYTE, copy it to the start pos
|
||||
|
||||
- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1];
|
||||
+ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1];
|
||||
|
||||
- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle);
|
||||
+ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle);
|
||||
} else {
|
||||
// read the complete buffer
|
||||
|
||||
- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle);
|
||||
+ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle);
|
||||
}
|
||||
|
||||
*ReadPos = 0;
|
||||
@@ -346,19 +346,9 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS;
|
||||
|
||||
try {
|
||||
- // check PCX identifier
|
||||
-
|
||||
- long start_pos = io->tell_proc(handle);
|
||||
- BOOL validated = pcx_validate(io, handle);
|
||||
- io->seek_proc(handle, start_pos, SEEK_SET);
|
||||
- if(!validated) {
|
||||
- throw FI_MSG_ERROR_MAGIC_NUMBER;
|
||||
- }
|
||||
-
|
||||
- // process the header
|
||||
-
|
||||
PCXHEADER header;
|
||||
|
||||
+ // process the header
|
||||
if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) {
|
||||
throw FI_MSG_ERROR_PARSING;
|
||||
}
|
||||
@@ -366,20 +356,38 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
SwapHeader(&header);
|
||||
#endif
|
||||
|
||||
- // allocate a new DIB
|
||||
+ // process the window
|
||||
+ const WORD *window = header.window; // left, upper, right,lower pixel coord.
|
||||
+ const int left = window[0];
|
||||
+ const int top = window[1];
|
||||
+ const int right = window[2];
|
||||
+ const int bottom = window[3];
|
||||
|
||||
- unsigned width = header.window[2] - header.window[0] + 1;
|
||||
- unsigned height = header.window[3] - header.window[1] + 1;
|
||||
- unsigned bitcount = header.bpp * header.planes;
|
||||
-
|
||||
- if (bitcount == 24) {
|
||||
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
|
||||
- } else {
|
||||
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
|
||||
+ // check image size
|
||||
+ if((left >= right) || (top >= bottom)) {
|
||||
+ throw FI_MSG_ERROR_PARSING;
|
||||
}
|
||||
|
||||
- // if the dib couldn't be allocated, throw an error
|
||||
+ const unsigned width = right - left + 1;
|
||||
+ const unsigned height = bottom - top + 1;
|
||||
+ const unsigned bitcount = header.bpp * header.planes;
|
||||
|
||||
+ // allocate a new dib
|
||||
+ switch(bitcount) {
|
||||
+ case 1:
|
||||
+ case 4:
|
||||
+ case 8:
|
||||
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
|
||||
+ break;
|
||||
+ case 24:
|
||||
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
|
||||
+ break;
|
||||
+ default:
|
||||
+ throw FI_MSG_ERROR_DIB_MEMORY;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ // if the dib couldn't be allocated, throw an error
|
||||
if (!dib) {
|
||||
throw FI_MSG_ERROR_DIB_MEMORY;
|
||||
}
|
||||
@@ -426,19 +434,23 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
|
||||
if (palette_id == 0x0C) {
|
||||
BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE));
|
||||
- io->read_proc(cmap, 768, 1, handle);
|
||||
|
||||
- pal = FreeImage_GetPalette(dib);
|
||||
- BYTE *pColormap = &cmap[0];
|
||||
+ if(cmap) {
|
||||
+ io->read_proc(cmap, 768, 1, handle);
|
||||
|
||||
- for(int i = 0; i < 256; i++) {
|
||||
- pal[i].rgbRed = pColormap[0];
|
||||
- pal[i].rgbGreen = pColormap[1];
|
||||
- pal[i].rgbBlue = pColormap[2];
|
||||
- pColormap += 3;
|
||||
+ pal = FreeImage_GetPalette(dib);
|
||||
+ BYTE *pColormap = &cmap[0];
|
||||
+
|
||||
+ for(int i = 0; i < 256; i++) {
|
||||
+ pal[i].rgbRed = pColormap[0];
|
||||
+ pal[i].rgbGreen = pColormap[1];
|
||||
+ pal[i].rgbBlue = pColormap[2];
|
||||
+ pColormap += 3;
|
||||
+ }
|
||||
+
|
||||
+ free(cmap);
|
||||
}
|
||||
|
||||
- free(cmap);
|
||||
}
|
||||
|
||||
// wrong palette ID, perhaps a gray scale is needed ?
|
||||
@@ -463,12 +475,12 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
return dib;
|
||||
}
|
||||
|
||||
- // calculate the line length for the PCX and the DIB
|
||||
+ // calculate the line length for the PCX and the dib
|
||||
|
||||
// length of raster line in bytes
|
||||
- unsigned linelength = header.bytes_per_line * header.planes;
|
||||
- // length of DIB line (rounded to DWORD) in bytes
|
||||
- unsigned pitch = FreeImage_GetPitch(dib);
|
||||
+ const unsigned linelength = header.bytes_per_line * header.planes;
|
||||
+ // length of dib line (rounded to DWORD) in bytes
|
||||
+ const unsigned pitch = FreeImage_GetPitch(dib);
|
||||
|
||||
// run-length encoding ?
|
||||
|
||||
@@ -478,14 +490,18 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
// ---------------
|
||||
|
||||
line = (BYTE*)malloc(linelength * sizeof(BYTE));
|
||||
- if(!line) throw FI_MSG_ERROR_MEMORY;
|
||||
+ if(!line) {
|
||||
+ throw FI_MSG_ERROR_MEMORY;
|
||||
+ }
|
||||
|
||||
- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE));
|
||||
- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY;
|
||||
+ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE));
|
||||
+ if(!ReadBuf) {
|
||||
+ throw FI_MSG_ERROR_MEMORY;
|
||||
+ }
|
||||
|
||||
bits = FreeImage_GetScanLine(dib, height - 1);
|
||||
|
||||
- int ReadPos = IO_BUF_SIZE;
|
||||
+ int ReadPos = PCX_IO_BUF_SIZE;
|
||||
|
||||
if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) {
|
||||
BYTE skip;
|
||||
@@ -497,7 +513,7 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
// skip trailing garbage at the end of the scanline
|
||||
|
||||
for (unsigned count = written; count < linelength; count++) {
|
||||
- if (ReadPos < IO_BUF_SIZE) {
|
||||
+ if (ReadPos < PCX_IO_BUF_SIZE) {
|
||||
ReadPos++;
|
||||
} else {
|
||||
io->read_proc(&skip, sizeof(BYTE), 1, handle);
|
||||
@@ -513,7 +529,9 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
unsigned x, y, written;
|
||||
|
||||
buffer = (BYTE*)malloc(width * sizeof(BYTE));
|
||||
- if(!buffer) throw FI_MSG_ERROR_MEMORY;
|
||||
+ if(!buffer) {
|
||||
+ throw FI_MSG_ERROR_MEMORY;
|
||||
+ }
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos);
|
||||
@@ -532,7 +550,7 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
}
|
||||
}
|
||||
|
||||
- // then write the DIB row
|
||||
+ // then write the dib row
|
||||
|
||||
for (x = 0; x < width / 2; x++) {
|
||||
bits[x] = (buffer[2*x] << 4) | buffer[2*x+1];
|
||||
@@ -541,7 +559,7 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
// skip trailing garbage at the end of the scanline
|
||||
|
||||
for (unsigned count = written; count < linelength; count++) {
|
||||
- if (ReadPos < IO_BUF_SIZE) {
|
||||
+ if (ReadPos < PCX_IO_BUF_SIZE) {
|
||||
ReadPos++;
|
||||
} else {
|
||||
io->read_proc(&skip, sizeof(BYTE), 1, handle);
|
||||
167
mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch
Normal file
167
mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch
Normal file
@@ -0,0 +1,167 @@
|
||||
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
|
||||
--- FreeImage/Makefile.fip 2015-09-17 22:51:21.797196208 +0200
|
||||
+++ FreeImage-new/Makefile.fip 2015-09-24 01:18:01.576395215 +0200
|
||||
@@ -3,6 +3,14 @@
|
||||
# This file can be generated by ./genfipsrclist.sh
|
||||
include fipMakefile.srcs
|
||||
|
||||
+CC = gcc
|
||||
+CXX = g++
|
||||
+LD = g++
|
||||
+AR = ar
|
||||
+DLLTOOL = dlltool
|
||||
+RC = windres
|
||||
+PKGCONFIG = pkg-config
|
||||
+
|
||||
# General configuration variables:
|
||||
DESTDIR ?= /
|
||||
INCDIR ?= $(DESTDIR)/usr/include
|
||||
@@ -24,24 +32,21 @@ override CFLAGS += -DNO_LCMS
|
||||
override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
|
||||
override CFLAGS += $(INCLUDE)
|
||||
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
|
||||
+override CXXFLAGS += -DFIP_EXPORTS
|
||||
# LibJXR
|
||||
override CXXFLAGS += -D__ANSI__
|
||||
override CXXFLAGS += $(INCLUDE)
|
||||
LDFLAGS ?=
|
||||
-override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
|
||||
-
|
||||
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
|
||||
- override CFLAGS += -fPIC
|
||||
- override CXXFLAGS += -fPIC
|
||||
-endif
|
||||
+override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR) -lgdi32
|
||||
|
||||
TARGET = freeimageplus
|
||||
STATICLIB = lib$(TARGET).a
|
||||
-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
|
||||
-LIBNAME = lib$(TARGET).so
|
||||
-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
|
||||
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
|
||||
+IMPORTLIB = lib$(TARGET).dll.a
|
||||
+EXPORTLIB = lib$(TARGET).exp
|
||||
HEADER = Source/FreeImage.h
|
||||
HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h
|
||||
+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc
|
||||
|
||||
|
||||
default: all
|
||||
@@ -51,7 +56,8 @@ all: dist
|
||||
dist: FreeImage
|
||||
mkdir -p Dist
|
||||
cp *.a Dist/
|
||||
- cp *.so Dist/
|
||||
+ cp *.dll Dist/
|
||||
+ cp *.dll.a Dist/
|
||||
cp Source/FreeImage.h Dist/
|
||||
cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/
|
||||
|
||||
@@ -66,21 +72,14 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
|
||||
.cpp.o:
|
||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
|
||||
-$(STATICLIB): $(MODULES)
|
||||
- $(AR) r $@ $(MODULES)
|
||||
+%.coff: %.rc
|
||||
+ $(RC) $(RCFLAGS) -o $@ $<
|
||||
|
||||
-$(SHAREDLIB): $(MODULES)
|
||||
- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
-
|
||||
-install:
|
||||
- install -d $(INCDIR) $(INSTALLDIR)
|
||||
- install -m 644 -o root -g root $(HEADER) $(INCDIR)
|
||||
- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
|
||||
- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
|
||||
- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
|
||||
- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
|
||||
- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
|
||||
+$(STATICLIB): $(MODULES)
|
||||
+ $(AR) rs $@ $(MODULES)
|
||||
|
||||
-clean:
|
||||
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
|
||||
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
|
||||
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
|
||||
|
||||
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
|
||||
+ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
|
||||
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
|
||||
--- FreeImage/Makefile.gnu 2015-09-17 22:51:21.798196232 +0200
|
||||
+++ FreeImage-new/Makefile.gnu 2015-09-24 01:24:52.381788259 +0200
|
||||
@@ -3,6 +3,14 @@
|
||||
# This file can be generated by ./gensrclist.sh
|
||||
include Makefile.srcs
|
||||
|
||||
+CC = gcc
|
||||
+CXX = g++
|
||||
+LD = g++
|
||||
+AR = ar
|
||||
+DLLTOOL = dlltool
|
||||
+RC = windres
|
||||
+PKGCONFIG = pkg-config
|
||||
+
|
||||
# General configuration variables:
|
||||
DESTDIR ?= /
|
||||
INCDIR ?= $(DESTDIR)/usr/include
|
||||
@@ -16,18 +24,14 @@ LIBRARIES = -lstdc++
|
||||
MODULES = $(SRCS:.c=.o)
|
||||
MODULES := $(MODULES:.cpp=.o)
|
||||
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
|
||||
-override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
|
||||
-override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
|
||||
-
|
||||
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
|
||||
- override CFLAGS += -fPIC
|
||||
-endif
|
||||
+override CFLAGS += $(INCLUDE) -D__ANSI__ -DFREEIMAGE_EXPORTS -I/mingw32/include/jxrlib -I/mingw64/include/jxrlib $(shell ${PKGCONFIG} --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
|
||||
+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell ${PKGCONFIG} --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
|
||||
|
||||
TARGET = freeimage
|
||||
STATICLIB = lib$(TARGET).a
|
||||
-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
|
||||
-LIBNAME = lib$(TARGET).so
|
||||
-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
|
||||
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
|
||||
+IMPORTLIB = lib$(TARGET).dll.a
|
||||
+EXPORTLIB = lib$(TARGET).exp
|
||||
HEADER = Source/FreeImage.h
|
||||
|
||||
|
||||
@@ -39,7 +43,8 @@ all: dist
|
||||
dist: FreeImage
|
||||
mkdir -p Dist
|
||||
cp *.a Dist/
|
||||
- cp *.so Dist/
|
||||
+ cp *.dll Dist/
|
||||
+ cp *.dll.a Dist/
|
||||
cp Source/FreeImage.h Dist/
|
||||
|
||||
dos2unix:
|
||||
@@ -54,20 +59,10 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
|
||||
$(CXX) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(STATICLIB): $(MODULES)
|
||||
- $(AR) r $@ $(MODULES)
|
||||
-
|
||||
-$(SHAREDLIB): $(MODULES)
|
||||
- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
-
|
||||
-install:
|
||||
- install -d $(INCDIR) $(INSTALLDIR)
|
||||
- install -m 644 -o root -g root $(HEADER) $(INCDIR)
|
||||
- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
|
||||
- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
|
||||
- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
|
||||
- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
|
||||
-# ldconfig
|
||||
+ $(AR) rs $@ $(MODULES)
|
||||
|
||||
-clean:
|
||||
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
|
||||
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
|
||||
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
|
||||
|
||||
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
|
||||
+ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
|
||||
548
mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch
Normal file
548
mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch
Normal file
@@ -0,0 +1,548 @@
|
||||
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
|
||||
--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
|
||||
+++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
|
||||
+DIRLIST="Wrapper/FreeImagePlus"
|
||||
|
||||
|
||||
echo "VER_MAJOR = 3" > fipMakefile.srcs
|
||||
@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs
|
||||
for DIR in $DIRLIST; do
|
||||
echo -n " -I$DIR" >> fipMakefile.srcs
|
||||
done
|
||||
+echo -n " -IDist" >> fipMakefile.srcs
|
||||
echo >> fipMakefile.srcs
|
||||
|
||||
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
|
||||
--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100
|
||||
+++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
||||
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
|
||||
|
||||
echo "VER_MAJOR = 3" > Makefile.srcs
|
||||
echo "VER_MINOR = 17.0" >> Makefile.srcs
|
||||
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
|
||||
--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
|
||||
+++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
|
||||
@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o)
|
||||
MODULES := $(MODULES:.cpp=.o)
|
||||
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
|
||||
# OpenJPEG
|
||||
-CFLAGS += -DOPJ_STATIC
|
||||
+override CFLAGS += -DOPJ_STATIC
|
||||
# LibRaw
|
||||
-CFLAGS += -DNO_LCMS
|
||||
+override CFLAGS += -DNO_LCMS
|
||||
# LibJXR
|
||||
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
|
||||
-CFLAGS += $(INCLUDE)
|
||||
+override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
|
||||
+override CFLAGS += $(INCLUDE)
|
||||
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
|
||||
# LibJXR
|
||||
-CXXFLAGS += -D__ANSI__
|
||||
-CXXFLAGS += $(INCLUDE)
|
||||
+override CXXFLAGS += -D__ANSI__
|
||||
+override CXXFLAGS += $(INCLUDE)
|
||||
+LDFLAGS ?=
|
||||
+override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
|
||||
|
||||
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
|
||||
- CFLAGS += -fPIC
|
||||
- CXXFLAGS += -fPIC
|
||||
+ override CFLAGS += -fPIC
|
||||
+ override CXXFLAGS += -fPIC
|
||||
endif
|
||||
|
||||
TARGET = freeimageplus
|
||||
@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES)
|
||||
$(AR) r $@ $(MODULES)
|
||||
|
||||
$(SHAREDLIB): $(MODULES)
|
||||
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
|
||||
install:
|
||||
install -d $(INCDIR) $(INSTALLDIR)
|
||||
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
|
||||
--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
|
||||
+++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200
|
||||
@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++
|
||||
MODULES = $(SRCS:.c=.o)
|
||||
MODULES := $(MODULES:.cpp=.o)
|
||||
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
|
||||
-# OpenJPEG
|
||||
-CFLAGS += -DOPJ_STATIC
|
||||
-# LibRaw
|
||||
-CFLAGS += -DNO_LCMS
|
||||
-# LibJXR
|
||||
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
|
||||
-CFLAGS += $(INCLUDE)
|
||||
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
|
||||
-# LibJXR
|
||||
-CXXFLAGS += -D__ANSI__
|
||||
-CXXFLAGS += $(INCLUDE)
|
||||
+override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
|
||||
+override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
|
||||
|
||||
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
|
||||
- CFLAGS += -fPIC
|
||||
- CXXFLAGS += -fPIC
|
||||
+ override CFLAGS += -fPIC
|
||||
endif
|
||||
|
||||
TARGET = freeimage
|
||||
@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
.cpp.o:
|
||||
- $(CXX) $(CXXFLAGS) -c $< -o $@
|
||||
+ $(CXX) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(STATICLIB): $(MODULES)
|
||||
$(AR) r $@ $(MODULES)
|
||||
|
||||
$(SHAREDLIB): $(MODULES)
|
||||
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
|
||||
|
||||
install:
|
||||
install -d $(INCDIR) $(INSTALLDIR)
|
||||
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
|
||||
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibOpenJPEG/openjpeg.h"
|
||||
+#include <openjpeg.h>
|
||||
#include "J2KHelper.h"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp
|
||||
--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200
|
||||
@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu
|
||||
s_plugins->AddNode(InitDDS);
|
||||
s_plugins->AddNode(InitGIF);
|
||||
s_plugins->AddNode(InitHDR);
|
||||
- s_plugins->AddNode(InitG3);
|
||||
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
|
||||
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
|
||||
+ which is a no no because of security reasons. */
|
||||
+#if 0
|
||||
+ s_plugins->AddNode(InitG3);
|
||||
+#endif
|
||||
s_plugins->AddNode(InitSGI);
|
||||
s_plugins->AddNode(InitEXR);
|
||||
s_plugins->AddNode(InitJ2K);
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200
|
||||
@@ -28,16 +28,16 @@
|
||||
#pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
|
||||
#endif
|
||||
|
||||
-#include "../OpenEXR/IlmImf/ImfIO.h"
|
||||
-#include "../OpenEXR/Iex/Iex.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfRgba.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfArray.h"
|
||||
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
|
||||
-#include "../OpenEXR/Half/half.h"
|
||||
+#include <OpenEXR/ImfIO.h>
|
||||
+#include <OpenEXR/Iex.h>
|
||||
+#include <OpenEXR/ImfOutputFile.h>
|
||||
+#include <OpenEXR/ImfInputFile.h>
|
||||
+#include <OpenEXR/ImfRgbaFile.h>
|
||||
+#include <OpenEXR/ImfChannelList.h>
|
||||
+#include <OpenEXR/ImfRgba.h>
|
||||
+#include <OpenEXR/ImfArray.h>
|
||||
+#include <OpenEXR/ImfPreviewImage.h>
|
||||
+#include <OpenEXR/half.h>
|
||||
|
||||
|
||||
// ==========================================================
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibOpenJPEG/openjpeg.h"
|
||||
+#include <openjpeg.h>
|
||||
#include "J2KHelper.h"
|
||||
|
||||
// ==========================================================
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibOpenJPEG/openjpeg.h"
|
||||
+#include <openjpeg.h>
|
||||
#include "J2KHelper.h"
|
||||
|
||||
// ==========================================================
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200
|
||||
@@ -35,9 +35,9 @@ extern "C" {
|
||||
#undef FAR
|
||||
#include <setjmp.h>
|
||||
|
||||
-#include "../LibJPEG/jinclude.h"
|
||||
-#include "../LibJPEG/jpeglib.h"
|
||||
-#include "../LibJPEG/jerror.h"
|
||||
+#include <stdio.h>
|
||||
+#include <jpeglib.h>
|
||||
+#include <jerror.h>
|
||||
}
|
||||
|
||||
#include "FreeImage.h"
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "Utilities.h"
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
|
||||
-#include "../LibJXR/jxrgluelib/JXRGlue.h"
|
||||
+#include <JXRGlue.h>
|
||||
|
||||
// ==========================================================
|
||||
// Plugin Interface
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
@@ -40,8 +40,8 @@
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
-#include "../ZLib/zlib.h"
|
||||
-#include "../LibPNG/png.h"
|
||||
+#include <zlib.h>
|
||||
+#include <png.h>
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
@@ -19,7 +19,7 @@
|
||||
// Use at your own risk!
|
||||
// ==========================================================
|
||||
|
||||
-#include "../LibRawLite/libraw/libraw.h"
|
||||
+#include <libraw/libraw.h>
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
@@ -37,9 +37,9 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffio.h>
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
-#include "../OpenEXR/Half/half.h"
|
||||
+#include <OpenEXR/half.h>
|
||||
|
||||
#include "FreeImageIO.h"
|
||||
#include "PSDParser.h"
|
||||
@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
|
||||
return tif;
|
||||
}
|
||||
|
||||
-/**
|
||||
-Open a TIFF file for reading or writing
|
||||
-@param name
|
||||
-@param mode
|
||||
-*/
|
||||
-TIFF*
|
||||
-TIFFOpen(const char* name, const char* mode) {
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// ----------------------------------------------------------
|
||||
// TIFF library FreeImage-specific routines.
|
||||
// ----------------------------------------------------------
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
@@ -24,10 +24,10 @@
|
||||
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
|
||||
-#include "../LibWebP/src/webp/decode.h"
|
||||
-#include "../LibWebP/src/webp/encode.h"
|
||||
-#include "../LibWebP/src/enc/vp8enci.h"
|
||||
-#include "../LibWebP/src/webp/mux.h"
|
||||
+#include <webp/decode.h>
|
||||
+#include <webp/encode.h>
|
||||
+// #include "../LibWebP/src/enc/vp8enci.h"
|
||||
+#include <webp/mux.h>
|
||||
|
||||
// ==========================================================
|
||||
// Plugin Interface
|
||||
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
|
||||
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
@@ -19,10 +19,9 @@
|
||||
// Use at your own risk!
|
||||
// ==========================================================
|
||||
|
||||
-#include "../ZLib/zlib.h"
|
||||
+#include <zlib.h>
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
|
||||
|
||||
/**
|
||||
Compresses a source buffer into a target buffer, using the ZLib library.
|
||||
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
|
||||
return 0;
|
||||
case Z_OK: {
|
||||
// patch header, setup crc and length (stolen from mod_trace_output)
|
||||
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
|
||||
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
|
||||
crc = crc32(crc, source, source_size);
|
||||
memcpy(target + 4 + dest_len, &crc, 4);
|
||||
memcpy(target + 8 + dest_len, &source_size, 4);
|
||||
diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
|
||||
--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200
|
||||
@@ -155,8 +155,11 @@ typedef uint8_t BYTE;
|
||||
typedef uint16_t WORD;
|
||||
typedef uint32_t DWORD;
|
||||
typedef int32_t LONG;
|
||||
+// Disable these, they conflict with the (wrong) ones of libraw
|
||||
+#if 0
|
||||
typedef int64_t INT64;
|
||||
typedef uint64_t UINT64;
|
||||
+#endif
|
||||
#else
|
||||
// MS is not C99 ISO compliant
|
||||
typedef long BOOL;
|
||||
@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) {
|
||||
FIF_DDS = 24,
|
||||
FIF_GIF = 25,
|
||||
FIF_HDR = 26,
|
||||
- FIF_FAXG3 = 27,
|
||||
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
|
||||
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
|
||||
+ which is a no no because of security reasons. */
|
||||
+#if 0
|
||||
+ FIF_FAXG3 = 27,
|
||||
+#endif
|
||||
FIF_SGI = 28,
|
||||
FIF_EXR = 29,
|
||||
FIF_J2K = 30,
|
||||
@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
|
||||
FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix)
|
||||
};
|
||||
|
||||
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
|
||||
+ Fedora build of FreeImage as they require that FreeImage uses a private copy
|
||||
+ of libjpeg which is a no no because of security reasons. */
|
||||
+#if 0
|
||||
/** Lossless JPEG transformations
|
||||
Constants used in FreeImage_JPEGTransform
|
||||
*/
|
||||
@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
|
||||
FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation
|
||||
FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw)
|
||||
};
|
||||
+#endif
|
||||
|
||||
/** Tone mapping operators.
|
||||
Constants used in FreeImage_ToneMapping.
|
||||
@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma
|
||||
// --------------------------------------------------------------------------
|
||||
// JPEG lossless transformation routines
|
||||
// --------------------------------------------------------------------------
|
||||
-
|
||||
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
|
||||
++ Fedora build of FreeImage as they require that FreeImage uses a private copy
|
||||
++ of libjpeg which is a no no because of security reasons. */
|
||||
+#if 0
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
|
||||
@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
|
||||
+#endif
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
|
||||
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200
|
||||
@@ -26,10 +26,10 @@ extern "C" {
|
||||
#undef FAR
|
||||
#include <setjmp.h>
|
||||
|
||||
-#include "../LibJPEG/jinclude.h"
|
||||
-#include "../LibJPEG/jpeglib.h"
|
||||
-#include "../LibJPEG/jerror.h"
|
||||
-#include "../LibJPEG/transupp.h"
|
||||
+#include <jinclude.h>
|
||||
+#include <jpeglib.h>
|
||||
+#include <jerror.h>
|
||||
+#include <transupp.h>
|
||||
}
|
||||
|
||||
#include "FreeImage.h"
|
||||
diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp
|
||||
--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100
|
||||
+++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200
|
||||
@@ -30,6 +30,11 @@
|
||||
|
||||
#define MAX_TEXT_EXTENT 512
|
||||
|
||||
+// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h)
|
||||
+typedef int64_t INT64;
|
||||
+typedef uint64_t UINT64;
|
||||
+
|
||||
+
|
||||
/**
|
||||
Convert a tag to a C string
|
||||
*/
|
||||
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
|
||||
--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100
|
||||
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200
|
||||
@@ -29,13 +29,18 @@
|
||||
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
|
||||
#endif
|
||||
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffio.h>
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
#include "FreeImageTag.h"
|
||||
#include "FIRational.h"
|
||||
|
||||
+extern "C"
|
||||
+{
|
||||
+ int _TIFFDataSize(TIFFDataType type);
|
||||
+}
|
||||
+
|
||||
// ----------------------------------------------------------
|
||||
// Extended TIFF Directory GEO Tag Support
|
||||
// ----------------------------------------------------------
|
||||
@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI
|
||||
// TIFF EXIF tag reading & writing
|
||||
// ----------------------------------------------------------
|
||||
|
||||
+static uint32 exif_tag_ids[] = {
|
||||
+ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM,
|
||||
+ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF,
|
||||
+ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED,
|
||||
+ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL,
|
||||
+ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE,
|
||||
+ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE,
|
||||
+ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE,
|
||||
+ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH,
|
||||
+ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT,
|
||||
+ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL,
|
||||
+ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE,
|
||||
+ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION,
|
||||
+ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY,
|
||||
+ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION,
|
||||
+ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT,
|
||||
+ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD,
|
||||
+ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN,
|
||||
+ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE,
|
||||
+ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM,
|
||||
+ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST,
|
||||
+ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION,
|
||||
+ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL,
|
||||
+ EXIFTAG_IMAGEUNIQUEID
|
||||
+};
|
||||
+static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]);
|
||||
+
|
||||
/**
|
||||
Read a single Exif tag
|
||||
|
||||
@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
|
||||
|
||||
// loop over all Core Directory Tags
|
||||
// ### uses private data, but there is no other way
|
||||
+ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those
|
||||
if(md_model == TagLib::EXIF_MAIN) {
|
||||
- const TIFFDirectory *td = &tif->tif_dir;
|
||||
-
|
||||
- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo)
|
||||
-
|
||||
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
|
||||
- const TIFFField *fld = tif->tif_fields[fi];
|
||||
-
|
||||
- const uint32 tag_id = TIFFFieldTag(fld);
|
||||
-
|
||||
- if(tag_id == lastTag) {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- // test if tag value is set
|
||||
- // (lifted directly from LibTiff _TIFFWriteDirectory)
|
||||
-
|
||||
- if( fld->field_bit == FIELD_CUSTOM ) {
|
||||
- int is_set = FALSE;
|
||||
-
|
||||
- for(int ci = 0; ci < td->td_customValueCount; ci++ ) {
|
||||
- is_set |= (td->td_customValues[ci].info == fld);
|
||||
- }
|
||||
-
|
||||
- if( !is_set ) {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- } else if(!TIFFFieldSet(tif, fld->field_bit)) {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- // process *all* other tags (some will be ignored)
|
||||
-
|
||||
- tiff_read_exif_tag(tif, tag_id, dib, md_model);
|
||||
-
|
||||
- lastTag = tag_id;
|
||||
+ for (int i = 0; i < nExifTags; ++i) {
|
||||
+ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model);
|
||||
}
|
||||
-
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
|
||||
|
||||
TagLib& tag_lib = TagLib::instance();
|
||||
|
||||
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
|
||||
- const TIFFField *fld = tif->tif_fields[fi];
|
||||
-
|
||||
- const uint32 tag_id = TIFFFieldTag(fld);
|
||||
+ for (int fi = 0; fi < nExifTags; fi++) {
|
||||
+ const uint32 tag_id = exif_tag_ids[fi];
|
||||
+ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id);
|
||||
|
||||
if(skip_write_field(tif, tag_id)) {
|
||||
// skip tags that are already handled by the LibTIFF writing process
|
||||
@@ -1,67 +1,61 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=FreeImage
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=3.16.0
|
||||
pkgrel=5
|
||||
pkgver=3.17.0
|
||||
pkgrel=1
|
||||
pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)."
|
||||
arch=('any')
|
||||
license=('GPL' 'custom:FIPL')
|
||||
url="http://freeimage.sourceforge.net/"
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-libtiff"
|
||||
"${MINGW_PACKAGE_PREFIX}-LibRaw"
|
||||
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
|
||||
"${MINGW_PACKAGE_PREFIX}-openexr"
|
||||
"${MINGW_PACKAGE_PREFIX}-libwebp")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
"${MINGW_PACKAGE_PREFIX}-jxrlib"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-libtiff"
|
||||
"${MINGW_PACKAGE_PREFIX}-LibRaw"
|
||||
"${MINGW_PACKAGE_PREFIX}-libwebp"
|
||||
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
|
||||
"${MINGW_PACKAGE_PREFIX}-openexr")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-iconv"
|
||||
"${MINGW_PACKAGE_PREFIX}-pkg-config"
|
||||
"dos2unix" "make")
|
||||
options=('strip' 'staticlibs' '!buildflags')
|
||||
source=("http://downloads.sourceforge.net/sourceforge/freeimage/FreeImage${pkgver//./}.zip"
|
||||
'FreeImage-3.16.0_mingw-makefiles.patch'
|
||||
'FreeImage-3.16.0_unbundle.patch'
|
||||
'FreeImage-3.16.0_disable-some-plugins.patch')
|
||||
md5sums=('1a2d1fff6204adbd479cc98818892fc1'
|
||||
'20a0a9f7257df79bbcbdec62ed2446d9'
|
||||
'824115841c4a5be8aa98a7b31ce07d79'
|
||||
'ffd4a31d2d1c2cf19af3a1e6232f8fd6')
|
||||
'FreeImage-3.17.0_mingw-makefiles.patch'
|
||||
'FreeImage-3.17.0_unbundle.patch'
|
||||
'FreeImage-3.17.0_CVE-2015-0852.patch')
|
||||
md5sums=('459e15f0ec75d6efa3c7bd63277ead86'
|
||||
'6510a7f7c715acf7bd182cd888d4787d'
|
||||
'b81acf43a202d03573932e1f98d63a60'
|
||||
'b21385e2da5dcdf4aa4e98d11150115d')
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/FreeImage
|
||||
|
||||
# Convert to utf-8
|
||||
#iconv -f ISO-8859-15 -t UTF-8 Whatsnew.txt
|
||||
#iconv -f WINDOWS-1252 -t UTF-8 license-gplv3.txt
|
||||
#iconv -f ISO-8859-15 -t UTF-8 -o Whatsnew.txt.new Whatsnew.txt && \
|
||||
# touch -r Whatsnew.txt Whatsnew.txt.new && \
|
||||
# mv Whatsnew.txt.new Whatsnew.txt
|
||||
patch -p1 -i ${srcdir}/FreeImage-3.17.0_unbundle.patch
|
||||
patch -p1 -i ${srcdir}/FreeImage-3.17.0_mingw-makefiles.patch
|
||||
patch -p1 -i ${srcdir}/FreeImage-3.17.0_CVE-2015-0852.patch
|
||||
|
||||
#iconv -f WINDOWS-1252 -t UTF-8 -o license-gplv3.txt.new license-gplv3.txt && \
|
||||
# touch -r license-gplv3.txt license-gplv3.txt.new && \
|
||||
# mv license-gplv3.txt.new license-gplv3.txt
|
||||
|
||||
patch -p1 -i ${srcdir}/FreeImage-3.16.0_mingw-makefiles.patch
|
||||
patch -p1 -i ${srcdir}/FreeImage-3.16.0_unbundle.patch
|
||||
patch -p1 -i ${srcdir}/FreeImage-3.16.0_disable-some-plugins.patch
|
||||
|
||||
# Remove bundled libraries
|
||||
rm -rf Source/OpenEXR
|
||||
rm -rf Source/LibMNG
|
||||
rm -rf Source/LibOpenJPEG
|
||||
rm -rf Source/LibPNG
|
||||
rm -rf Source/LibRawLite
|
||||
rm -rf Source/LibTIFF
|
||||
rm -rf Source/LibJPEG
|
||||
rm -rf Source/LibTIFF4
|
||||
rm -rf Source/ZLib
|
||||
rm -rf Source/LibWebP
|
||||
|
||||
# Mingw-w64 has its own header
|
||||
rm -rf Source/LibJXR/common/include/guiddef.h
|
||||
# remove all included libs to make sure these don't get used during compile
|
||||
rm -r Source/Lib* Source/ZLib Source/OpenEXR
|
||||
|
||||
# clear files which cannot be built due to dependencies on private headers
|
||||
# (see also unbundle patch)
|
||||
> Source/FreeImage/PluginG3.cpp
|
||||
> Source/FreeImageToolkit/JPEGTransform.cpp
|
||||
|
||||
# sanitize encodings / line endings
|
||||
for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do
|
||||
${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \
|
||||
sed -i 's|\r||g' ${file}.new && \
|
||||
touch -r ${file} ${file}.new && mv ${file}.new ${file}
|
||||
done
|
||||
|
||||
#cp -f ${srcdir}/Makefile.mingw-w64 ${srcdir}/FreeImage/Makefile.mingw-w64
|
||||
|
||||
|
||||
# Generate source list
|
||||
sh ./gensrclist.sh
|
||||
sh ./genfipsrclist.sh
|
||||
@@ -70,32 +64,17 @@ prepare() {
|
||||
build() {
|
||||
cd ${srcdir}/FreeImage
|
||||
|
||||
mkdir -p ${srcdir}/build-{shared,static}-${CARCH}
|
||||
lndir ${srcdir}/FreeImage ${srcdir}/build-shared-${CARCH}
|
||||
lndir ${srcdir}/FreeImage ${srcdir}/build-static-${CARCH}
|
||||
mkdir -p ${srcdir}/build-${CARCH}
|
||||
lndir ${srcdir}/FreeImage ${srcdir}/build-${CARCH}
|
||||
|
||||
plain "Build shared version..."
|
||||
cd ${srcdir}/build-shared-${CARCH}
|
||||
cd ${srcdir}/build-${CARCH}
|
||||
make \
|
||||
MINGW_TARGET=${MINGW_CHOST} \
|
||||
FREEIMAGE_LIBRARY_TYPE="SHARED" \
|
||||
-f Makefile.mingw
|
||||
-f Makefile.gnu
|
||||
|
||||
make \
|
||||
MINGW_TARGET=${MINGW_CHOST} \
|
||||
FREEIMAGE_LIBRARY_TYPE="SHARED" \
|
||||
-f Makefile.fip
|
||||
|
||||
plain "Build static version..."
|
||||
cd ${srcdir}/build-static-${CARCH}
|
||||
make \
|
||||
MINGW_TARGET=${MINGW_CHOST} \
|
||||
FREEIMAGE_LIBRARY_TYPE="STATIC" \
|
||||
-f Makefile.mingw
|
||||
|
||||
make \
|
||||
MINGW_TARGET=${MINGW_CHOST} \
|
||||
FREEIMAGE_LIBRARY_TYPE="STATIC" \
|
||||
-f Makefile.fip
|
||||
}
|
||||
|
||||
@@ -105,20 +84,19 @@ package() {
|
||||
install -d "${pkgdir}${MINGW_PREFIX}"/include
|
||||
install -d "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage
|
||||
|
||||
cd ${srcdir}/build-shared-${CARCH}
|
||||
cd ${srcdir}/build-${CARCH}
|
||||
install -m755 Dist/libfreeimage-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/
|
||||
install -m644 Dist/libfreeimage.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
install -m755 Dist/libfreeimageplus-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/
|
||||
install -m644 Dist/libfreeimageplus.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
install -m644 Dist/FreeImage.h "${pkgdir}${MINGW_PREFIX}"/include/
|
||||
install -m644 Dist/FreeImagePlus.h "${pkgdir}${MINGW_PREFIX}"/include/
|
||||
|
||||
|
||||
install -m644 Whatsnew.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
|
||||
install -m644 license-fi.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
|
||||
install -m644 license-gplv2.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
|
||||
install -m644 license-gplv3.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
|
||||
|
||||
cd ${srcdir}/build-static-${CARCH}
|
||||
install -m644 Dist/libfreeimage.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
install -m644 Dist/libfreeimageplus.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
}
|
||||
|
||||
@@ -1,58 +1,57 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=LibRaw
|
||||
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=0.16.0
|
||||
pkgrel=1
|
||||
pkgver=0.16.2
|
||||
pkgrel=2
|
||||
pkgdesc="Library for reading RAW files obtained from digital photo cameras (mingw-w64)"
|
||||
arch=(any)
|
||||
url="http://www.libraw.org"
|
||||
license=("LGPL")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
||||
"${MINGW_PACKAGE_PREFIX}-lcms2"
|
||||
"${MINGW_PACKAGE_PREFIX}-jasper")
|
||||
"${MINGW_PACKAGE_PREFIX}-lcms2"
|
||||
"${MINGW_PACKAGE_PREFIX}-jasper")
|
||||
options=('staticlibs' 'strip')
|
||||
source=("http://www.libraw.org/data/${_realname}-${pkgver}.tar.gz"
|
||||
"http://www.libraw.org/data/${_realname}-demosaic-pack-GPL2-${pkgver}.tar.gz"
|
||||
"http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz"
|
||||
"LibRaw_wsock32.patch"
|
||||
"LibRaw_obsolete-macros.patch")
|
||||
sha256sums=('71f43871ec2535345c5c9b748f07813e49915170f9510b721a2be6478426cf96'
|
||||
'749d49694ce729166ec7a1faf7580780687ef190c756931bb075455ee8ed6697'
|
||||
'f2e904f9baa7d173b5ade163c795f26e110255a758e31bd213086a5a61500b5c'
|
||||
"http://www.libraw.org/data/${_realname}-demosaic-pack-GPL2-${pkgver}.tar.gz"
|
||||
"http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz"
|
||||
"LibRaw_wsock32.patch"
|
||||
"LibRaw_obsolete-macros.patch")
|
||||
sha256sums=('6344e355f7c23f13e266844b36265d5f624237ba5a62dc901c7b91b510a84187'
|
||||
'2218f08d59866e7852938356c197b96a6f47d0b9221a261280e010540477e77b'
|
||||
'749b5baa3a4f1f5c4ea4169b9293b02b0d2a0714aa01729327f23f82621c9735'
|
||||
'4bd077917fb8f37fa736e3a8bf32fabe3df3ff5438b684acbb5adff8a6c2a73b'
|
||||
'4a31c0ee066f43915beff6f7959b6b2cd246d390720df379bfc047d4cedb6a8f')
|
||||
|
||||
prepare() {
|
||||
mv $srcdir/${_realname}-demosaic-pack-GPL2-${pkgver} $srcdir/${_realname}-$pkgver/
|
||||
mv $srcdir/${_realname}-demosaic-pack-GPL3-${pkgver} $srcdir/${_realname}-$pkgver/
|
||||
cd "$srcdir/${_realname}-$pkgver"
|
||||
patch -Np1 -i "$srcdir/LibRaw_wsock32.patch"
|
||||
patch -Np1 -i "$srcdir/LibRaw_obsolete-macros.patch"
|
||||
|
||||
mv ${srcdir}/${_realname}-demosaic-pack-GPL2-${pkgver} $srcdir/${_realname}-$}pkgver}/
|
||||
mv ${srcdir}/${_realname}-demosaic-pack-GPL3-${pkgver} $srcdir/${_realname}-${pkgver}/
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
patch -Np1 -i "${srcdir}/LibRaw_wsock32.patch"
|
||||
patch -Np1 -i "${srcdir}/LibRaw_obsolete-macros.patch"
|
||||
|
||||
autoreconf -ifv
|
||||
}
|
||||
|
||||
build() {
|
||||
CPPFLAGS+=" -DLIBRAW_NODLL"
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/${_realname}-$pkgver/configure \
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
../${_realname}-$pkgver/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-jasper \
|
||||
--enable-lcms \
|
||||
--enable-demosaic-pack-gpl2 \
|
||||
--enable-demosaic-pack-gpl3
|
||||
--enable-lcms \
|
||||
--enable-demosaic-pack-gpl2 \
|
||||
--enable-demosaic-pack-gpl3
|
||||
|
||||
make
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="$pkgdir" install
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
arch=('any')
|
||||
url="http://www.openblas.net/"
|
||||
license=('custom')
|
||||
groups=("${MINGW_PACKAGE_PREFIX}")
|
||||
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
"${MINGW_PACKAGE_PREFIX}-openblas")
|
||||
conflicts=("${MINGW_PACKAGE_PREFIX}-openblas")
|
||||
@@ -20,10 +19,10 @@ options=('strip' 'staticlibs')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
||||
"${MINGW_PACKAGE_PREFIX}-gcc-libgfortran"
|
||||
"${MINGW_PACKAGE_PREFIX}-libwinpthread")
|
||||
makedepends=("git"
|
||||
makedepends=("git"
|
||||
"${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-gcc-fortran")
|
||||
source=("$_realname"::"git://github.com/xianyi/${_realname}")
|
||||
source=("${_realname}"::"git://github.com/xianyi/${_realname}")
|
||||
sha1sums=('SKIP')
|
||||
|
||||
pkgver() {
|
||||
@@ -84,7 +83,7 @@ package() {
|
||||
fi
|
||||
|
||||
# Copy Licencse
|
||||
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname
|
||||
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname
|
||||
cp -f ${srcdir}/${_realname}/LICENSE \
|
||||
${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname
|
||||
cp -f ${srcdir}/${_realname}/lapack-netlib/LICENSE \
|
||||
|
||||
35
mingw-w64-PKGBUILD-common/build-kf5-shared
Normal file
35
mingw-w64-PKGBUILD-common/build-kf5-shared
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
THISDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Listed in tier-order
|
||||
declare -a pkgs=(
|
||||
extra-cmake-modules
|
||||
attica-qt5
|
||||
karchive-qt5
|
||||
kcodecs-qt5
|
||||
kconfig-qt5
|
||||
kcoreaddons-qt5
|
||||
kdbusaddons-qt5
|
||||
kguiaddons-qt5
|
||||
ki18n-qt5
|
||||
kwindowsystem-qt5
|
||||
kcrash-qt5
|
||||
kglobalaccel-qt5
|
||||
kidletime-qt5
|
||||
kimageformats-qt5
|
||||
kitemmodels-qt5
|
||||
kitemviews-qt5
|
||||
kjs-qt5
|
||||
kplotting-qt5
|
||||
kwidgetsaddons-qt5
|
||||
solid-qt5
|
||||
)
|
||||
|
||||
for pkg in "${pkgs[@]}"; do
|
||||
pushd ${THISDIR}/../mingw-w64-${pkg}
|
||||
export KF5_VARIANT=shared
|
||||
rm -rf *pkg*xz src pkg
|
||||
makepkg-mingw -siLf || exit 1
|
||||
popd
|
||||
done
|
||||
@@ -8,8 +8,9 @@ _kde_f5_init_package() {
|
||||
fi
|
||||
_basename=${_PKG}
|
||||
_realname=${_PKG}-qt5${_namesuff}
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
url="https://projects.kde.org/projects/frameworks/${_PKG}"
|
||||
url=https://projects.kde.org/projects/frameworks/${_PKG}
|
||||
}
|
||||
|
||||
_kde_f5_add_depends() {
|
||||
@@ -31,4 +32,3 @@ _kde_f5_CMAKE_BUILD_TYPE() {
|
||||
echo "Release"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
61
mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git
Normal file
61
mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git
Normal file
@@ -0,0 +1,61 @@
|
||||
# Maintainer: Some One <some.one@some.email.com>
|
||||
|
||||
_realname=somepackage
|
||||
pkgbase=mingw-w64-${_realname}-git
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
|
||||
provides="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
replaces="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=100.77777777
|
||||
pkgrel=1
|
||||
pkgdesc="Some package (git) (mingw-w64)"
|
||||
arch=('any')
|
||||
url="https://github.com/someproject/somepackage"
|
||||
license=('LICENSE')
|
||||
validpgpkeys=('gpg_KEY')
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
|
||||
'git')
|
||||
options=('strip' 'staticlibs')
|
||||
source=("${_realname}"::"git+https://github.com/someproject/somepackage.git#branch=master"
|
||||
0001-An-important-fix.patch
|
||||
0002-A-less-important-fix.patch)
|
||||
md5sums=('SKIP'
|
||||
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
|
||||
|
||||
pkgver() {
|
||||
cd "${srcdir}"/${_realname}
|
||||
printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}"/${_realname}
|
||||
git am "${srcdir}"/0001-A-really-important-fix.patch
|
||||
git am "${srcdir}"/0002-A-less-important-fix.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
|
||||
mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
|
||||
|
||||
declare -a extra_config
|
||||
if check_option "debug" "n"; then
|
||||
extra_config+=("-DCMAKE_BUILD_TYPE=Release")
|
||||
else
|
||||
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
|
||||
fi
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||
${MINGW_PREFIX}/bin/cmake \
|
||||
-G'MSYS Makefiles' \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
"${extra_config[@]}" \
|
||||
-DBUILD_{SHARED,STATIC}_LIBS=ON \
|
||||
../${_realname}
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}"/build-${CARCH}
|
||||
make DESTDIR=${pkgdir} install
|
||||
}
|
||||
@@ -1,14 +1,15 @@
|
||||
# Maintainer: Some One <some.one@some.email.com>
|
||||
|
||||
_realname=somepackage
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
pkgver=1.0
|
||||
pkgrel=1
|
||||
pkgdesc='Some package'
|
||||
groups=("${MINGW_PACKAGE_PREFIX}")
|
||||
pkgdesc="Some package (mingw-w64)"
|
||||
arch=('any')
|
||||
url='http://www.somepackage.org/'
|
||||
license=('LICENSE')
|
||||
validpgpkeys=('gpg_KEY')
|
||||
source=("http://www.somepackage.org/${_realname}/${_realname}-${pkgver}.tar.gz"
|
||||
"0001-A-fix.patch")
|
||||
sha1sums=("SKIP"
|
||||
@@ -21,7 +22,7 @@ prepare() {
|
||||
|
||||
build() {
|
||||
cd "$srcdir"/${_realname}-${pkgver}
|
||||
[ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH}
|
||||
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
|
||||
mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
@@ -30,6 +31,7 @@ build() {
|
||||
--target=${MINGW_CHOST} \
|
||||
--enable-static \
|
||||
--enable-shared
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
# Maintainer: Alexey Pavlov <Alexpux@gmail.com>
|
||||
|
||||
_realname=Pillow
|
||||
pkgbase=mingw-w64-python-${_realname}
|
||||
pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
|
||||
pkgver=2.6.0
|
||||
pkgver=3.0.0
|
||||
_py2basever=2.7
|
||||
_py3basever=3.4m
|
||||
pkgrel=1
|
||||
pkgdesc="Python Imaging Library (PIL) fork. Python3 version (mingw-w64)"
|
||||
_py3basever=3.5m
|
||||
pkgrel=2
|
||||
arch=('any')
|
||||
groups=("${MINGW_PACKAGE_PREFIX}")
|
||||
license=('custom')
|
||||
url="https://github.com/python-pillow/Pillow/"
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-freetype"
|
||||
@@ -19,33 +18,34 @@ depends=("${MINGW_PACKAGE_PREFIX}-freetype"
|
||||
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
|
||||
"${MINGW_PACKAGE_PREFIX}-zlib")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools"
|
||||
"${MINGW_PACKAGE_PREFIX}-python3-setuptools"
|
||||
"${MINGW_PACKAGE_PREFIX}-tk")
|
||||
"${MINGW_PACKAGE_PREFIX}-python3-setuptools"
|
||||
"${MINGW_PACKAGE_PREFIX}-tk")
|
||||
options=('staticlibs')
|
||||
source=("http://pypi.python.org/packages/source/P/$_realname/$_realname-$pkgver.tar.gz"
|
||||
source=("http://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz"
|
||||
freeze-support.patch)
|
||||
md5sums=('dd57c00352dcec1953b7790e1efabf23'
|
||||
'91fac3184fff48841738ce838abc6fdf')
|
||||
md5sums=('fc8ac44e93da09678eac7e30c9b7377d'
|
||||
'cff4ba2f6541c7ab2ab2e27a4d53df61')
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/$_realname-$pkgver
|
||||
cd ${srcdir}/${_realname}-${pkgver}
|
||||
patch -p1 -i ${srcdir}/freeze-support.patch
|
||||
cd ${srcdir}
|
||||
cp -r "$_realname-$pkgver" "python2-build-${CARCH}"
|
||||
cp -r "$_realname-$pkgver" "python3-build-${CARCH}"
|
||||
cp -r "${_realname}-${pkgver}" "python2-build-${CARCH}"
|
||||
cp -r "${_realname}-${pkgver}" "python3-build-${CARCH}"
|
||||
}
|
||||
|
||||
package_python3-Pillow() {
|
||||
pkgdesc="Python Imaging Library (PIL) fork Python3 version (mingw-w64)"
|
||||
depends+=("${MINGW_PACKAGE_PREFIX}-python3")
|
||||
optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module")
|
||||
|
||||
cd "$srcdir/python3-build-${CARCH}"
|
||||
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
|
||||
${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0
|
||||
install -Dm644 docs/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-$_realname/LICENSE"
|
||||
|
||||
install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python$_py3basever/"
|
||||
install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python$_py3basever/" libImaging/*.h
|
||||
cd "${srcdir}/python3-build-${CARCH}"
|
||||
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
|
||||
${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0
|
||||
|
||||
install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE"
|
||||
install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/"
|
||||
install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" libImaging/*.h
|
||||
|
||||
# clean up bins
|
||||
cd "${pkgdir}${MINGW_PREFIX}/bin"
|
||||
@@ -55,26 +55,26 @@ package_python3-Pillow() {
|
||||
}
|
||||
|
||||
package_python2-Pillow() {
|
||||
pkgdesc="Python Imaging Library (PIL) fork. Python2 version."
|
||||
pkgdesc="Python Imaging Library (PIL) fork. Python2 version (mingw-w64)"
|
||||
depends+=("${MINGW_PACKAGE_PREFIX}-python2")
|
||||
optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module")
|
||||
|
||||
cd "$srcdir/python2-build-${CARCH}"
|
||||
|
||||
cd "${srcdir}/python2-build-${CARCH}"
|
||||
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
|
||||
${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0
|
||||
${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0
|
||||
|
||||
sed -i 's|/usr/local/bin/python$|/usr/bin/env python2|' \
|
||||
"$pkgdir${MINGW_PREFIX}/lib/python$_py2basever/site-packages/PIL/OleFileIO.py"
|
||||
"${pkgdir}${MINGW_PREFIX}/lib/python${_py2basever}/site-packages/PIL/OleFileIO.py"
|
||||
|
||||
install -Dm644 docs/LICENSE "$pkgdir${MINGW_PREFIX}/share/licenses/python2-$_realname/LICENSE"
|
||||
install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE"
|
||||
|
||||
install -dm755 "$pkgdir${MINGW_PREFIX}/include/python$_py2basever/"
|
||||
install -m644 -t "$pkgdir${MINGW_PREFIX}/include/python$_py2basever/" libImaging/*.h
|
||||
install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py2basever}/"
|
||||
install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py2basever}/" libImaging/*.h
|
||||
|
||||
# clean up bins
|
||||
cd "$pkgdir${MINGW_PREFIX}/bin"
|
||||
cd "${pkgdir}${MINGW_PREFIX}/bin"
|
||||
for f in *.py; do
|
||||
mv "$f" "${f%.py}2"
|
||||
mv "${f}" "${f%.py}2"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
--- Pillow-2.5.1/mp_compile.py.orig 2014-07-10 17:52:44.000000000 +0400
|
||||
+++ Pillow-2.5.1/mp_compile.py 2014-07-12 01:13:13.373200000 +0400
|
||||
@@ -1,7 +1,7 @@
|
||||
# A monkey patch of the base distutils.ccompiler to use parallel builds
|
||||
--- Pillow-3.0.0/mp_compile.py.orig 2015-10-01 16:27:09.000000000 +0100
|
||||
+++ Pillow-3.0.0/mp_compile.py 2015-10-05 23:34:17.226557000 +0100
|
||||
@@ -2,7 +2,7 @@
|
||||
# Tested on 2.7, looks to be identical to 3.3.
|
||||
|
||||
from __future__ import print_function
|
||||
-from multiprocessing import Pool, cpu_count
|
||||
+from multiprocessing import Pool, cpu_count, freeze_support
|
||||
from distutils.ccompiler import CCompiler
|
||||
import os
|
||||
|
||||
@@ -54,8 +54,10 @@
|
||||
try:
|
||||
# bug, only enable if we can make a Pool. see issue #790 and
|
||||
# http://stackoverflow.com/questions/6033599/oserror-38-errno-38-with-multiprocessing
|
||||
- pool = Pool(2)
|
||||
- CCompiler.compile = _mp_compile
|
||||
+ if __name__ == '__main__':
|
||||
+ freeze_support()
|
||||
+ pool = Pool(2)
|
||||
+ CCompiler.compile = _mp_compile
|
||||
except Exception as msg:
|
||||
print("Exception installing mp_compile, proceeding without: %s" %msg)
|
||||
else:
|
||||
import sys
|
||||
@@ -72,8 +72,10 @@
|
||||
try:
|
||||
# bug, only enable if we can make a Pool. see issue #790 and
|
||||
# http://stackoverflow.com/questions/6033599/oserror-38-errno-38-with-multiprocessing
|
||||
- pool = Pool(2)
|
||||
- CCompiler.compile = _mp_compile
|
||||
+ if __name__ == '__main__':
|
||||
+ freeze_support()
|
||||
+ pool = Pool(2)
|
||||
+ CCompiler.compile = _mp_compile
|
||||
except Exception as msg:
|
||||
print("Exception installing mp_compile, proceeding without:"
|
||||
"%s" % msg)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=SDL
|
||||
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.2.15
|
||||
pkgrel=3
|
||||
pkgrel=7
|
||||
pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://libsdl.org"
|
||||
@@ -12,23 +12,26 @@ license=("LGPL")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv")
|
||||
options=('staticlibs' 'strip')
|
||||
source=("$url/release/SDL-$pkgver.tar.gz")
|
||||
source=("${url}/release/SDL-${pkgver}.tar.gz")
|
||||
md5sums=('9d96df8417572a2afb781a7c4c811a85')
|
||||
|
||||
build() {
|
||||
[[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/SDL-${pkgver}/configure \
|
||||
../SDL-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST}
|
||||
--host=${MINGW_CHOST} \
|
||||
--disable-assembly \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "${pkgdir}${MINGW_PREFIX}/bin"
|
||||
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="$pkgdir" install
|
||||
make DESTDIR="${pkgdir}" install
|
||||
sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl.pc
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
_realname=SDL2
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=2.0.3
|
||||
pkgrel=2
|
||||
pkgrel=3
|
||||
pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (Version 2) (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://libsdl.org"
|
||||
@@ -11,30 +11,37 @@ license=("MIT")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv")
|
||||
options=('staticlibs' 'strip')
|
||||
source=("http://libsdl.org/release/SDL2-$pkgver.tar.gz"
|
||||
fix-linker-flags.patch)
|
||||
source=("http://libsdl.org/release/SDL2-${pkgver}.tar.gz"
|
||||
fix-linker-flags.patch
|
||||
SDL2-prevent-duplicate-d3d11-declarations.patch
|
||||
SDL2-fix-gcc-compatibility.patch)
|
||||
md5sums=('fe6c61d2e9df9ef570e7e80c6e822537'
|
||||
'932a4c42f068a9117c3c02efead14b29')
|
||||
'932a4c42f068a9117c3c02efead14b29'
|
||||
'a70714d69deaea9e4f0cbfb17e9f4acf'
|
||||
'abbdbc90d737c8296b58d6af462b68b7')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}"/${_realname}-${pkgver}
|
||||
patch -p1 -i ${srcdir}/fix-linker-flags.patch
|
||||
|
||||
patch -p1 -i ${srcdir}/SDL2-prevent-duplicate-d3d11-declarations.patch
|
||||
patch -p1 -i ${srcdir}/SDL2-fix-gcc-compatibility.patch
|
||||
|
||||
./autogen.sh
|
||||
}
|
||||
|
||||
build() {
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/${_realname}-${pkgver}/configure \
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST}
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="$pkgdir" install
|
||||
make DESTDIR="${pkgdir}" install
|
||||
sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl2.pc
|
||||
}
|
||||
|
||||
413
mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch
Normal file
413
mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch
Normal file
@@ -0,0 +1,413 @@
|
||||
--- a/src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100
|
||||
+++ b/src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:21:30.123045735 +0100
|
||||
@@ -46,6 +46,9 @@
|
||||
#endif /* __WINRT__ */
|
||||
|
||||
|
||||
+#define SDL_DEBUG_STRINGIFY_ARG(str) #str
|
||||
+#define SDL_DEBUG(str) SDL_DEBUG_STRINGIFY_ARG(__FUNCTION__) str
|
||||
+
|
||||
#define SAFE_RELEASE(X) if ((X)) { IUnknown_Release(SDL_static_cast(IUnknown*, X)); X = NULL; }
|
||||
|
||||
|
||||
@@ -910,7 +925,7 @@
|
||||
blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
|
||||
result = ID3D11Device_CreateBlendState(data->d3dDevice, &blendDesc, blendStateOutput);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBlendState", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBlendState"), result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -992,14 +1007,14 @@
|
||||
|
||||
result = CreateDXGIFactoryFunc(&IID_IDXGIFactory2, &data->dxgiFactory);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", CreateDXGIFactory", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", CreateDXGIFactory"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* FIXME: Should we use the default adapter? */
|
||||
result = IDXGIFactory2_EnumAdapters(data->dxgiFactory, 0, &data->dxgiAdapter);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1028,25 +1043,25 @@
|
||||
&d3dContext /* Returns the device immediate context. */
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
result = ID3D11Device_QueryInterface(d3dDevice, &IID_ID3D11Device1, &data->d3dDevice);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to ID3D11Device1", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to ID3D11Device1"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
result = ID3D11DeviceContext_QueryInterface(d3dContext, &IID_ID3D11DeviceContext1, &data->d3dContext);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext to ID3D11DeviceContext1", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext to ID3D11DeviceContext1"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
result = ID3D11Device_QueryInterface(d3dDevice, &IID_IDXGIDevice1, &dxgiDevice);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to IDXGIDevice1", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to IDXGIDevice1"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1055,7 +1070,7 @@
|
||||
*/
|
||||
result = IDXGIDevice1_SetMaximumFrameLatency(dxgiDevice, 1);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIDevice1::SetMaximumFrameLatency", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIDevice1::SetMaximumFrameLatency"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1084,7 +1099,7 @@
|
||||
break;
|
||||
|
||||
default:
|
||||
- SDL_SetError(__FUNCTION__ ", Unexpected feature level: %d", data->featureLevel);
|
||||
+ SDL_SetError("%s, Unexpected feature level: %d", __FUNCTION__, data->featureLevel);
|
||||
result = E_FAIL;
|
||||
goto done;
|
||||
}
|
||||
@@ -1097,7 +1112,7 @@
|
||||
&data->vertexShader
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateVertexShader", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateVertexShader"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1110,7 +1125,7 @@
|
||||
&data->inputLayout
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateInputLayout", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateInputLayout"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1122,7 +1137,7 @@
|
||||
&data->colorPixelShader
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['color' shader]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['color' shader]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1133,7 +1148,7 @@
|
||||
&data->texturePixelShader
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['textures' shader]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['textures' shader]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1144,7 +1159,7 @@
|
||||
&data->yuvPixelShader
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['yuv' shader]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['yuv' shader]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1159,7 +1174,7 @@
|
||||
&data->vertexShaderConstants
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex shader constants]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex shader constants]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1179,7 +1194,7 @@
|
||||
&data->nearestPixelSampler
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [nearest-pixel filter]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [nearest-pixel filter]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1189,7 +1204,7 @@
|
||||
&data->linearSampler
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [linear filter]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [linear filter]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1207,14 +1222,14 @@
|
||||
rasterDesc.SlopeScaledDepthBias = 0.0f;
|
||||
result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->mainRasterizer);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [main rasterizer]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [main rasterizer]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
rasterDesc.ScissorEnable = TRUE;
|
||||
result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->clippedRasterizer);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [clipped rasterizer]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [clipped rasterizer]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1374,7 +1389,7 @@
|
||||
&data->swapChain
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForCoreWindow", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForCoreWindow"), result);
|
||||
goto done;
|
||||
}
|
||||
} else if (usingXAML) {
|
||||
@@ -1384,18 +1399,18 @@
|
||||
NULL,
|
||||
&data->swapChain);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForComposition", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForComposition"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
#if WINAPI_FAMILY == WINAPI_FAMILY_APP
|
||||
result = ISwapChainBackgroundPanelNative_SetSwapChain(WINRT_GlobalSwapChainBackgroundPanelNative, (IDXGISwapChain *) data->swapChain);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ISwapChainBackgroundPanelNative::SetSwapChain", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ISwapChainBackgroundPanelNative::SetSwapChain"), result);
|
||||
goto done;
|
||||
}
|
||||
#else
|
||||
- SDL_SetError(__FUNCTION__ ", XAML support is not yet available for Windows Phone");
|
||||
+ SDL_SetError(SDL_DEBUG(", XAML support is not yet available for Windows Phone"));
|
||||
result = E_FAIL;
|
||||
goto done;
|
||||
#endif
|
||||
@@ -1414,7 +1429,7 @@
|
||||
&data->swapChain
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForHwnd", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForHwnd"), result);
|
||||
goto done;
|
||||
}
|
||||
#else
|
||||
@@ -1464,7 +1479,7 @@
|
||||
0
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::ResizeBuffers", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::ResizeBuffers"), result);
|
||||
goto done;
|
||||
}
|
||||
#endif
|
||||
@@ -1485,7 +1500,7 @@
|
||||
if (data->swapEffect == DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) {
|
||||
result = IDXGISwapChain1_SetRotation(data->swapChain, data->rotation);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::SetRotation", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::SetRotation"), result);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
@@ -1497,7 +1512,7 @@
|
||||
&backBuffer
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::GetBuffer [back-buffer]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::GetBuffer [back-buffer]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1508,7 +1523,7 @@
|
||||
&data->mainRenderTargetView
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device::CreateRenderTargetView", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device::CreateRenderTargetView"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1628,7 +1643,7 @@
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1646,7 +1661,7 @@
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1657,7 +1672,7 @@
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -1673,7 +1688,7 @@
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1685,7 +1700,7 @@
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result);
|
||||
return -1;
|
||||
}
|
||||
result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice,
|
||||
@@ -1695,7 +1710,7 @@
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -1712,7 +1727,7 @@
|
||||
&textureData->mainTextureRenderTargetView);
|
||||
if (FAILED(result)) {
|
||||
D3D11_DestroyTexture(renderer, texture);
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRenderTargetView", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRenderTargetView"), result);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -1768,7 +1783,7 @@
|
||||
NULL,
|
||||
&stagingTexture);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1781,7 +1796,7 @@
|
||||
&textureMemory
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result);
|
||||
SAFE_RELEASE(stagingTexture);
|
||||
return -1;
|
||||
}
|
||||
@@ -1943,7 +1958,7 @@
|
||||
NULL,
|
||||
&textureData->stagingTexture);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1956,7 +1971,7 @@
|
||||
&textureMemory
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result);
|
||||
SAFE_RELEASE(textureData->stagingTexture);
|
||||
return -1;
|
||||
}
|
||||
@@ -2238,7 +2253,7 @@
|
||||
&mappedResource
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [vertex buffer]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [vertex buffer]"), result);
|
||||
return -1;
|
||||
}
|
||||
SDL_memcpy(mappedResource.pData, vertexData, dataSizeInBytes);
|
||||
@@ -2262,7 +2277,7 @@
|
||||
&rendererData->vertexBuffer
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex buffer]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex buffer]"), result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -2732,7 +2747,7 @@
|
||||
&backBuffer
|
||||
);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::GetBuffer [get back buffer]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::GetBuffer [get back buffer]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -2749,7 +2764,7 @@
|
||||
NULL,
|
||||
&stagingTexture);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -2781,7 +2796,7 @@
|
||||
0,
|
||||
&textureMemory);
|
||||
if (FAILED(result)) {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result);
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -2800,7 +2815,7 @@
|
||||
* Get the error message, and attach some extra data to it.
|
||||
*/
|
||||
char errorMessage[1024];
|
||||
- SDL_snprintf(errorMessage, sizeof(errorMessage), __FUNCTION__ ", Convert Pixels failed: %s", SDL_GetError());
|
||||
+ SDL_snprintf(errorMessage, sizeof(errorMessage), "%s, Convert Pixels failed: %s", __FUNCTION__, SDL_GetError());
|
||||
SDL_SetError(errorMessage);
|
||||
goto done;
|
||||
}
|
||||
@@ -2869,7 +2884,7 @@
|
||||
/* We probably went through a fullscreen <-> windowed transition */
|
||||
D3D11_CreateWindowSizeDependentResources(renderer);
|
||||
} else {
|
||||
- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::Present", result);
|
||||
+ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::Present"), result);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
--- a/src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100
|
||||
+++ b/src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:16:38.285858676 +0100
|
||||
@@ -132,12 +132,24 @@
|
||||
|
||||
|
||||
/* Defined here so we don't have to include uuid.lib */
|
||||
+#ifndef __IDXGIFactory2_INTERFACE_DEFINED__
|
||||
static const GUID IID_IDXGIFactory2 = { 0x50c83a1c, 0xe072, 0x4c48, { 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0 } };
|
||||
+#endif
|
||||
+#ifndef __IDXGIDevice1_INTERFACE_DEFINED__
|
||||
static const GUID IID_IDXGIDevice1 = { 0x77db970f, 0x6276, 0x48ba, { 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c } };
|
||||
+#endif
|
||||
+#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__
|
||||
static const GUID IID_ID3D11Texture2D = { 0x6f15aaf2, 0xd208, 0x4e89, { 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c } };
|
||||
+#endif
|
||||
+#ifndef __ID3D11Device1_INTERFACE_DEFINED__
|
||||
static const GUID IID_ID3D11Device1 = { 0xa04bfb29, 0x08ef, 0x43d6, { 0xa4, 0x9c, 0xa9, 0xbd, 0xbd, 0xcb, 0xe6, 0x86 } };
|
||||
+#endif
|
||||
+#ifndef __ID3D11DeviceContext1_INTERFACE_DEFINED__
|
||||
static const GUID IID_ID3D11DeviceContext1 = { 0xbb2c6faa, 0xb5fb, 0x4082, { 0x8e, 0x6b, 0x38, 0x8b, 0x8c, 0xfa, 0x90, 0xe1 } };
|
||||
+#endif
|
||||
+#ifndef __ID3D11Debug_INTERFACE_DEFINED__
|
||||
static const GUID IID_ID3D11Debug = { 0x79cf2233, 0x7536, 0x4948, { 0x9d, 0x36, 0x1e, 0x46, 0x92, 0xdc, 0x57, 0x60 } };
|
||||
+#endif
|
||||
|
||||
/* Direct3D 11.x shaders
|
||||
|
||||
@@ -3,29 +3,37 @@
|
||||
_realname=SDL2_gfx
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.0.1
|
||||
pkgrel=1
|
||||
pkgdesc="SDL graphics drawing primitives and other support functions wrapped up in an addon library for the Simple Direct Media (SDL) cross-platform API layer."
|
||||
pkgrel=2
|
||||
pkgdesc="SDL graphics drawing primitives and other support functions wrapped up in an addon library for the Simple Direct Media (SDL) cross-platform API layer"
|
||||
arch=('any')
|
||||
url="http://cms.ferzkopp.net/index.php/software/13-sdl-gfx"
|
||||
license=("zlib")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL2")
|
||||
options=('staticlibs' 'strip')
|
||||
source=("http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-$pkgver.tar.gz")
|
||||
source=("http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-${pkgver}.tar.gz")
|
||||
md5sums=('9c96816618e3e086d885d1d214e59d87')
|
||||
|
||||
prepare() {
|
||||
cd ${_realname}-${pkgver}
|
||||
autoreconf -fiv
|
||||
}
|
||||
|
||||
build() {
|
||||
export lt_cv_deplibs_check_method='pass_all'
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/${_realname}-${pkgver}/configure \
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST}
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="$pkgdir" install
|
||||
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
|
||||
@@ -1,38 +1,40 @@
|
||||
# Maintainer: Marty Plummer (The_NetZ) <ntzrmtthihu777 (at) gmail (dot) com>
|
||||
|
||||
_realname=SDL2_image
|
||||
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
|
||||
pkgver=2.0.0
|
||||
pkgrel=2
|
||||
pkgrel=4
|
||||
pkgdesc=("A simple library to load images of various formats as SDL surfaces (Version 2)")
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_image"
|
||||
license=('MIT')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL2"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-libtiff"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
||||
"${MINGW_PACKAGE_PREFIX}-libwebp")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake")
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-libtiff"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
||||
"${MINGW_PACKAGE_PREFIX}-libwebp")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
source=("${url}/release/${_realname}-${pkgver}.tar.gz")
|
||||
sha1sums=('20b1b0db9dd540d6d5e40c7da8a39c6a81248865')
|
||||
|
||||
build() {
|
||||
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}/"
|
||||
"${srcdir}"/${_realname}-${pkgver}/configure \
|
||||
--disable-static \
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST}
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-static \
|
||||
--enable-shared
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}/"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
|
||||
make DESTDIR="${pkgdir}/" install
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.txt" \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=SDL2_mixer
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=2.0.0
|
||||
pkgrel=4
|
||||
pkgrel=6
|
||||
pkgdesc="A simple multi-channel audio mixer (Version 2) (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_mixer"
|
||||
@@ -13,38 +14,46 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
||||
"${MINGW_PACKAGE_PREFIX}-SDL2"
|
||||
"${MINGW_PACKAGE_PREFIX}-libvorbis"
|
||||
"${MINGW_PACKAGE_PREFIX}-libmodplug"
|
||||
"${MINGW_PACKAGE_PREFIX}-smpeg2"
|
||||
"${MINGW_PACKAGE_PREFIX}-libmad"
|
||||
"${MINGW_PACKAGE_PREFIX}-flac"
|
||||
"${MINGW_PACKAGE_PREFIX}-fluidsynth")
|
||||
options=('staticlibs' 'strip')
|
||||
noextract=(${_realname}-${pkgver}.tar.gz)
|
||||
source=("$url/release/${_realname}-${pkgver}.tar.gz")
|
||||
md5sums=('65f6d80df073a1fb3bb537fbda031b50')
|
||||
source=("$url/release/${_realname}-${pkgver}.tar.gz"
|
||||
SDL2_mixer-find_lib.mingw.patch)
|
||||
md5sums=('65f6d80df073a1fb3bb537fbda031b50'
|
||||
'c891fc5d73238c85ff42cfe31213da7b')
|
||||
|
||||
prepare() {
|
||||
cd $startdir/
|
||||
[ -d $srcdir/${_realname}-$pkgver ] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir || true
|
||||
[[ -d ${srcdir}/${_realname}-${pkgver} ]] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C ${srcdir} || true
|
||||
|
||||
cd "${srcdir}"/${_realname}-${pkgver}
|
||||
|
||||
patch -Np1 -i ${srcdir}/SDL2_mixer-find_lib.mingw.patch
|
||||
|
||||
sed -i "s|/etc/timidity|/etc/timidity++|g" timidity/config.h
|
||||
sed -i "s|/etc/timidity++.cfg|/etc/timidity++/timidity.cfg|g" timidity/config.h
|
||||
}
|
||||
|
||||
build() {
|
||||
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/${_realname}-${pkgver}/configure \
|
||||
cd "${srcdir}/build-${MINGW_CHOST}/"
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
--enable-static \
|
||||
--enable-music-mp3 \
|
||||
--disable-music-mp3-smpeg \
|
||||
--enable-music-mp3-mad-gpl
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="$pkgdir" install
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
|
||||
101
mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch
Normal file
101
mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch
Normal file
@@ -0,0 +1,101 @@
|
||||
diff --git a/configure b/configure
|
||||
index 878381b..be39a38 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -11143,13 +11143,14 @@ find_lib()
|
||||
gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
|
||||
gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
|
||||
env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`
|
||||
+ env_path=`echo $PATH | sed 's/:/ /g'`
|
||||
if test "$cross_compiling" = yes; then
|
||||
host_lib_path=""
|
||||
else
|
||||
host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
|
||||
fi
|
||||
- for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
|
||||
- lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`
|
||||
+ for path in $gcc_bin_path $gcc_lib_path $env_lib_path $env_path $host_lib_path; do
|
||||
+ lib=`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
if test x$lib != x; then
|
||||
echo $lib
|
||||
return
|
||||
@@ -11938,7 +11939,7 @@ fi
|
||||
*-*-darwin*)
|
||||
modplug_lib=`find_lib libmodplug.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
modplug_lib=`find_lib "libmodplug*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -12070,7 +12071,7 @@ fi
|
||||
*-*-darwin*)
|
||||
mikmod_lib=`find_lib libmikmod.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
mikmod_lib=`find_lib "libmikmod*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -12132,7 +12133,7 @@ fi
|
||||
*mingw32ce*)
|
||||
use_music_midi_native=no
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
use_music_midi_native=yes
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm"
|
||||
;;
|
||||
@@ -12221,8 +12222,11 @@ fi
|
||||
*-*-darwin*)
|
||||
fluidsynth_lib=`find_lib libfluidsynth.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
fluidsynth_lib=`find_lib "fluidsynth*.dll"`
|
||||
+ if test x$fluidsynth_lib = x; then
|
||||
+ fluidsynth_lib=`find_lib "libfluidsynth*.dll"`
|
||||
+ fi
|
||||
;;
|
||||
*)
|
||||
fluidsynth_lib=`find_lib "libfluidsynth[0-9]*.so.*"`
|
||||
@@ -12331,8 +12335,11 @@ fi
|
||||
*-*-darwin*)
|
||||
ogg_lib=`find_lib libvorbisidec.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
ogg_lib=`find_lib "vorbisidec*.dll"`
|
||||
+ if test x$ogg_lib = x; then
|
||||
+ ogg_lib=`find_lib "libvorbisidec*.dll"`
|
||||
+ fi
|
||||
;;
|
||||
*)
|
||||
ogg_lib=`find_lib "libvorbisidec[0-9]*.so.*"`
|
||||
@@ -12409,7 +12416,7 @@ fi
|
||||
*-*-darwin*)
|
||||
ogg_lib=`find_lib libvorbisfile.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
ogg_lib=`find_lib "libvorbisfile*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -12545,7 +12552,7 @@ fi
|
||||
*-*-darwin*)
|
||||
flac_lib=`find_lib libFLAC.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
flac_lib=`find_lib "libFLAC-*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -12841,7 +12848,7 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
*-*-darwin*)
|
||||
smpeg_lib=`find_lib libsmpeg2.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
smpeg_lib=`find_lib "smpeg2*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -3,7 +3,7 @@
|
||||
_realname=SDL2_net
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=2.0.0
|
||||
pkgrel=2
|
||||
pkgrel=3
|
||||
pkgdesc="A small sample cross-platform networking library (Version 2) (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_net"
|
||||
@@ -11,23 +11,24 @@ license=("MIT")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-SDL2")
|
||||
options=('staticlibs' 'strip')
|
||||
source=("$url/release/${_realname}-${pkgver}.tar.gz")
|
||||
source=("${url}/release/${_realname}-${pkgver}.tar.gz")
|
||||
md5sums=('83bcd0e67796b81b35b08a014c677200')
|
||||
|
||||
build() {
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/${_realname}-${pkgver}/configure \
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="$pkgdir" install
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
|
||||
@@ -18,10 +18,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-SDL2"
|
||||
"${MINGW_PACKAGE_PREFIX}-flac"
|
||||
"${MINGW_PACKAGE_PREFIX}-speex"
|
||||
"${MINGW_PACKAGE_PREFIX}-physfs-hg")
|
||||
makedepends=('mercurial')
|
||||
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
options=('strip' 'staticlibs')
|
||||
source=($_realname::"hg+http://hg.icculus.org/icculus/SDL_sound"
|
||||
source=(${_realname}::"hg+http://hg.icculus.org/icculus/SDL_sound"
|
||||
'pkgconfig.patch'
|
||||
'physfs-renamed-export.patch'
|
||||
'no-undefined.patch'
|
||||
@@ -52,7 +53,7 @@ build() {
|
||||
export lt_cv_deplibs_check_method='pass_all'
|
||||
mkdir -p ${srcdir}/build-${MINGW_CHOST}
|
||||
cd ${srcdir}/build-${MINGW_CHOST}
|
||||
${srcdir}/${_realname}/configure \
|
||||
../${_realname}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
@@ -60,11 +61,11 @@ build() {
|
||||
--enable-shared \
|
||||
--enable-static \
|
||||
--disable-mikmod
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${srcdir}/build-${MINGW_CHOST}
|
||||
|
||||
make DESTDIR="$pkgdir/" install
|
||||
make DESTDIR="${pkgdir}/" install
|
||||
}
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
|
||||
|
||||
_realname=SDL2_ttf
|
||||
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
|
||||
pkgver=2.0.12
|
||||
pkgrel=1
|
||||
pkgrel=3
|
||||
pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (Version 2)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_ttf"
|
||||
@@ -17,15 +16,18 @@ source=("$url/release/${_realname}-${pkgver}.tar.gz")
|
||||
md5sums=('79787216b56cb4707f39d538f2225e00')
|
||||
|
||||
build() {
|
||||
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
|
||||
mkdir -p ${srcdir}/build-${MINGW_CHOST}
|
||||
cd ${srcdir}/build-${MINGW_CHOST}
|
||||
|
||||
${srcdir}/${_realname}-${pkgver}/configure \
|
||||
--disable-static \
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--target=${MINGW_CHOST}
|
||||
--target=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
|
||||
37
mingw-w64-SDL_gfx/PKGBUILD
Normal file
37
mingw-w64-SDL_gfx/PKGBUILD
Normal file
@@ -0,0 +1,37 @@
|
||||
# Maintainer: Marty Plummer (The_NetZ) <ntzrmtthihu777 (at) gmail (dot) com>
|
||||
|
||||
_realname=SDL_gfx
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
|
||||
pkgver=2.0.25
|
||||
pkgrel=3
|
||||
pkgdesc="SDL Graphic Primitives (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx"
|
||||
license=('LGPL')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
source=("http://www.ferzkopp.net/Software/SDL_gfx-2.0/${_realname}-${pkgver}.tar.gz")
|
||||
sha1sums=('20a89d0b71b7b790b830c70f17ed2c44100bc0f4')
|
||||
|
||||
build() {
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
42
mingw-w64-SDL_image/PKGBUILD
Normal file
42
mingw-w64-SDL_image/PKGBUILD
Normal file
@@ -0,0 +1,42 @@
|
||||
# Maintainer: Marty Plummer (The_NetZ) <ntzrmtthihu777 (at) gmail (dot) com>
|
||||
|
||||
_realname=SDL_image
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
|
||||
pkgver=1.2.12
|
||||
pkgrel=4
|
||||
pkgdesc="A simple library to load images of various formats as SDL surfaces (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_image"
|
||||
license=('MIT')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-libtiff"
|
||||
"${MINGW_PACKAGE_PREFIX}-libwebp"
|
||||
"${MINGW_PACKAGE_PREFIX}-zlib")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
source=("${url}/release/${_realname}-${pkgver}.tar.gz")
|
||||
sha1sums=('5e3e393d4e366638048bbb10d6a269ea3f4e4cf2')
|
||||
|
||||
build() {
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}/"
|
||||
|
||||
make DESTDIR="${pkgdir}/" install
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
75
mingw-w64-SDL_mixer/PKGBUILD
Normal file
75
mingw-w64-SDL_mixer/PKGBUILD
Normal file
@@ -0,0 +1,75 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=SDL_mixer
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
|
||||
pkgver=1.2.12
|
||||
pkgrel=2
|
||||
pkgdesc="A simple multi-channel audio mixer (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_mixer/"
|
||||
license=('custom')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL"
|
||||
"${MINGW_PACKAGE_PREFIX}-libvorbis"
|
||||
"${MINGW_PACKAGE_PREFIX}-libmikmod"
|
||||
"${MINGW_PACKAGE_PREFIX}-libmad"
|
||||
)
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-pkg-config"
|
||||
"${MINGW_PACKAGE_PREFIX}-fluidsynth")
|
||||
optdepends=("${MINGW_PACKAGE_PREFIX}-fluidsynth: MIDI software synth, replaces built-in timidity")
|
||||
source=(http://www.libsdl.org/projects/SDL_mixer/release/${_realname}-${pkgver}.tar.gz
|
||||
mikmod1.patch
|
||||
mikmod2.patch
|
||||
fluidsynth-volume.patch
|
||||
double-free-crash.patch
|
||||
SDL_mixer-find_lib.mingw.patch)
|
||||
md5sums=('e03ff73d77a55e3572ad0217131dc4a1'
|
||||
'c335d4ff1fe86950d1fc730745c9c96d'
|
||||
'd13d98fef8ec51167a370fa7976a7a7f'
|
||||
'eceb06e3a8b31fee300d7f33478401d4'
|
||||
'b38c1b23751ca95631badeb9327d085e'
|
||||
'a116f6c880aae14d2a1657447bdbd81e')
|
||||
noextract=(${_realname}-${pkgver}.tar.gz)
|
||||
|
||||
prepare() {
|
||||
[[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver}
|
||||
tar -xzf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || true
|
||||
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
|
||||
patch -Np1 -i ${srcdir}/mikmod1.patch
|
||||
patch -Np1 -i ${srcdir}/mikmod2.patch
|
||||
patch -Np1 -i ${srcdir}/fluidsynth-volume.patch
|
||||
patch -Np1 -i ${srcdir}/double-free-crash.patch
|
||||
patch -Np1 -i ${srcdir}/SDL_mixer-find_lib.mingw.patch
|
||||
|
||||
#sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
|
||||
# -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
|
||||
# -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
|
||||
# -i timidity/config.h
|
||||
}
|
||||
|
||||
build() {
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static \
|
||||
--disable-music-mp3 \
|
||||
--enable-music-mp3-mad-gpl
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}/"
|
||||
|
||||
make DESTDIR="${pkgdir}/" install
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
90
mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch
Normal file
90
mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch
Normal file
@@ -0,0 +1,90 @@
|
||||
diff --git a/configure b/configure
|
||||
index e7c8c97..f6b9ad1 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -11850,12 +11850,13 @@ find_lib()
|
||||
gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
|
||||
gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
|
||||
env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`
|
||||
+ env_path=`echo $PATH | sed 's/:/ /g'`
|
||||
if test "$cross_compiling" = yes; then
|
||||
host_lib_path=""
|
||||
else
|
||||
host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
|
||||
fi
|
||||
- for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
|
||||
+ for path in $gcc_bin_path $gcc_lib_path $env_lib_path $env_path $host_lib_path; do
|
||||
lib=`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
if test x$lib != x; then
|
||||
echo $lib
|
||||
@@ -12727,7 +12728,7 @@ fi
|
||||
*-*-darwin*)
|
||||
mikmod_lib=`find_lib libmikmod.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
mikmod_lib=`find_lib "libmikmod*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -12916,7 +12917,7 @@ fi
|
||||
*mingw32ce*)
|
||||
use_music_native_midi=no
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
use_music_native_midi=yes
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm"
|
||||
;;
|
||||
@@ -13159,8 +13160,11 @@ fi
|
||||
fluidsynth_lib=`find_lib libfluidsynth.[0-9]*`
|
||||
fi
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
fluidsynth_lib=`find_lib "fluidsynth*.dll"`
|
||||
+ if test x$fluidsynth_lib = x; then
|
||||
+ fluidsynth_lib=`find_lib "libfluidsynth*.dll"`
|
||||
+ fi
|
||||
;;
|
||||
*)
|
||||
fluidsynth_lib=`find_lib "libfluidsynth.so.[0-9]"`
|
||||
@@ -13415,8 +13419,11 @@ fi
|
||||
ogg_lib=`find_lib libvorbisidec.[0-9]*`
|
||||
fi
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
ogg_lib=`find_lib "vorbisidec*.dll"`
|
||||
+ if test x$ogg_lib = x; then
|
||||
+ ogg_lib=`find_lib "libvorbisidec*.dll"`
|
||||
+ fi
|
||||
;;
|
||||
*)
|
||||
ogg_lib=`find_lib "libvorbisidec.so.[0-9]"`
|
||||
@@ -13640,7 +13647,7 @@ fi
|
||||
*-*-darwin*)
|
||||
ogg_lib=`find_lib libvorbisfile.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
ogg_lib=`find_lib "libvorbisfile*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -14073,7 +14080,7 @@ fi
|
||||
*-*-darwin*)
|
||||
flac_lib=`find_lib libFLAC.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
flac_lib=`find_lib "libFLAC*.dll"`
|
||||
;;
|
||||
*)
|
||||
@@ -14649,7 +14656,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||
*-*-darwin*)
|
||||
smpeg_lib=`find_lib libsmpeg.dylib`
|
||||
;;
|
||||
- *-*-cygwin* | *-*-mingw32*)
|
||||
+ *-*-cygwin* | *-*-mingw*)
|
||||
smpeg_lib=`find_lib "smpeg*.dll"`
|
||||
;;
|
||||
*)
|
||||
31
mingw-w64-SDL_mixer/double-free-crash.patch
Normal file
31
mingw-w64-SDL_mixer/double-free-crash.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Sam Lantinga <slouken@libsdl.org>
|
||||
# Date 1329087437 18000
|
||||
# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd
|
||||
# Parent df72f22b4b411ad4b08f924329678aabd5ac97d6
|
||||
Fixed 1418 - crash on double free if loading WAV file failed
|
||||
|
||||
diff -r df72f22b4b41 -r 2d713670db9b mixer.c
|
||||
--- a/mixer.c Mon Jan 30 21:41:45 2012 -0500
|
||||
+++ b/mixer.c Sun Feb 12 17:57:17 2012 -0500
|
||||
@@ -610,13 +610,15 @@
|
||||
break;
|
||||
default:
|
||||
SDL_SetError("Unrecognized sound file type");
|
||||
- return(0);
|
||||
+ if ( freesrc ) {
|
||||
+ SDL_RWclose(src);
|
||||
+ }
|
||||
+ loaded = NULL;
|
||||
+ break;
|
||||
}
|
||||
if ( !loaded ) {
|
||||
+ /* The individual loaders have closed src if needed */
|
||||
SDL_free(chunk);
|
||||
- if ( freesrc ) {
|
||||
- SDL_RWclose(src);
|
||||
- }
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
22
mingw-w64-SDL_mixer/fluidsynth-volume.patch
Normal file
22
mingw-w64-SDL_mixer/fluidsynth-volume.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User James Le Cuirot <chewi@aura-online.co.uk>
|
||||
# Date 1330896767 0
|
||||
# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e
|
||||
# Parent 2d713670db9b832b0c5aa700824900bc1fc3c3cd
|
||||
Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases.
|
||||
|
||||
diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c
|
||||
--- a/fluidsynth.c Sun Feb 12 17:57:17 2012 -0500
|
||||
+++ b/fluidsynth.c Sun Mar 04 21:32:47 2012 +0000
|
||||
@@ -176,8 +176,8 @@
|
||||
|
||||
void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume)
|
||||
{
|
||||
- /* FluidSynth's default is 0.2. Make 0.8 the maximum. */
|
||||
- fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625));
|
||||
+ /* FluidSynth's default is 0.2. Make 1.2 the maximum. */
|
||||
+ fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME));
|
||||
}
|
||||
|
||||
int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len)
|
||||
66
mingw-w64-SDL_mixer/mikmod1.patch
Normal file
66
mingw-w64-SDL_mixer/mikmod1.patch
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Sam Lantinga <slouken@libsdl.org>
|
||||
# Date 1342998807 25200
|
||||
# Node ID 56cad6484b04f83c8d42428c755a046678506436
|
||||
# Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e
|
||||
Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver
|
||||
|
||||
diff -r c92001a2c18f -r 56cad6484b04 CHANGES
|
||||
--- a/CHANGES Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -1,3 +1,7 @@
|
||||
+1.2.13:
|
||||
+Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012
|
||||
+ * Fixed malloc/free mismatch in the MikMod driver
|
||||
+
|
||||
1.2.12:
|
||||
Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500
|
||||
* Fixed seek offset with SMPEG (was relative, should be absolute)
|
||||
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c
|
||||
--- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -93,6 +93,13 @@
|
||||
SDL_UnloadObject(mikmod.handle);
|
||||
return -1;
|
||||
}
|
||||
+ mikmod.MikMod_free =
|
||||
+ (void (*)(void*))
|
||||
+ SDL_LoadFunction(mikmod.handle, "MikMod_free");
|
||||
+ if ( mikmod.MikMod_free == NULL ) {
|
||||
+ SDL_UnloadObject(mikmod.handle);
|
||||
+ return -1;
|
||||
+ }
|
||||
mikmod.Player_Active =
|
||||
(BOOL (*)(void))
|
||||
SDL_LoadFunction(mikmod.handle, "Player_Active");
|
||||
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h
|
||||
--- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -35,6 +35,7 @@
|
||||
void (*MikMod_RegisterDriver)(struct MDRIVER*);
|
||||
int* MikMod_errno;
|
||||
char* (*MikMod_strerror)(int);
|
||||
+ void (*MikMod_free)(void*);
|
||||
BOOL (*Player_Active)(void);
|
||||
void (*Player_Free)(MODULE*);
|
||||
MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL);
|
||||
diff -r c92001a2c18f -r 56cad6484b04 music_mod.c
|
||||
--- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -109,13 +109,13 @@
|
||||
|
||||
list = mikmod.MikMod_InfoDriver();
|
||||
if ( list )
|
||||
- free(list);
|
||||
+ mikmod.MikMod_free(list);
|
||||
else
|
||||
mikmod.MikMod_RegisterDriver(mikmod.drv_nos);
|
||||
|
||||
list = mikmod.MikMod_InfoLoader();
|
||||
if ( list )
|
||||
- free(list);
|
||||
+ mikmod.MikMod_free(list);
|
||||
else
|
||||
mikmod.MikMod_RegisterAllLoaders();
|
||||
|
||||
34
mingw-w64-SDL_mixer/mikmod2.patch
Normal file
34
mingw-w64-SDL_mixer/mikmod2.patch
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Sam Lantinga <slouken@libsdl.org>
|
||||
# Date 1343000017 25200
|
||||
# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
|
||||
# Parent 56cad6484b04f83c8d42428c755a046678506436
|
||||
Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
|
||||
|
||||
diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
|
||||
--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
|
||||
+++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700
|
||||
@@ -97,8 +97,8 @@
|
||||
(void (*)(void*))
|
||||
SDL_LoadFunction(mikmod.handle, "MikMod_free");
|
||||
if ( mikmod.MikMod_free == NULL ) {
|
||||
- SDL_UnloadObject(mikmod.handle);
|
||||
- return -1;
|
||||
+ /* libmikmod 3.1 and earlier doesn't have it */
|
||||
+ mikmod.MikMod_free = free;
|
||||
}
|
||||
mikmod.Player_Active =
|
||||
(BOOL (*)(void))
|
||||
@@ -246,6 +246,11 @@
|
||||
mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
|
||||
mikmod.MikMod_errno = &MikMod_errno;
|
||||
mikmod.MikMod_strerror = MikMod_strerror;
|
||||
+#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
|
||||
+ mikmod.MikMod_free = free;
|
||||
+#else
|
||||
+ mikmod.MikMod_free = MikMod_free;
|
||||
+#endif
|
||||
mikmod.Player_Active = Player_Active;
|
||||
mikmod.Player_Free = Player_Free;
|
||||
mikmod.Player_LoadGeneric = Player_LoadGeneric;
|
||||
37
mingw-w64-SDL_net/PKGBUILD
Normal file
37
mingw-w64-SDL_net/PKGBUILD
Normal file
@@ -0,0 +1,37 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=SDL_net
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
|
||||
pkgver=1.2.8
|
||||
pkgrel=1
|
||||
pkgdesc="A small sample cross-platform networking library (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_net"
|
||||
license=('custom')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
source=(http://www.libsdl.org/projects/SDL_net/release/${_realname}-${pkgver}.tar.gz)
|
||||
md5sums=('20e64e61d65662db66c379034f11f718')
|
||||
|
||||
build() {
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}/"
|
||||
|
||||
make DESTDIR="${pkgdir}/" install
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
36
mingw-w64-SDL_ttf/PKGBUILD
Normal file
36
mingw-w64-SDL_ttf/PKGBUILD
Normal file
@@ -0,0 +1,36 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=SDL_ttf
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=2.0.11
|
||||
pkgrel=4
|
||||
pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.libsdl.org/projects/SDL_ttf/"
|
||||
license=("custom")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-freetype")
|
||||
options=('staticlibs' 'strip')
|
||||
source=(http://www.libsdl.org/projects/SDL_ttf/release/${_realname}-${pkgver}.tar.gz)
|
||||
md5sums=('61e29bd9da8d245bc2471d1b2ce591aa')
|
||||
|
||||
build() {
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared \
|
||||
--enable-static
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
diff -urN a52dec-0.7.4-orig/configure.in a52dec-0.7.4/configure.in
|
||||
--- a52dec-0.7.4-orig/configure.in 2015-07-12 13:15:51.803347900 +0100
|
||||
+++ a52dec-0.7.4/configure.in 2015-07-12 13:16:11.160455100 +0100
|
||||
@@ -85,7 +85,6 @@
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
-AC_C_ALWAYS_INLINE
|
||||
AC_C_RESTRICT
|
||||
AC_TYPE_SIZE_T
|
||||
AC_C_BIGENDIAN
|
||||
@@ -1,41 +1,45 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
# Contributor: AlexWMF <alexxwmf@gmail.com>
|
||||
|
||||
|
||||
_realname=a52dec
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=0.7.4
|
||||
pkgrel=1
|
||||
pkgdesc="A free library for decoding ATSC A/52 streams"
|
||||
pkgrel=3
|
||||
pkgdesc="A free library for decoding ATSC A/52 streams (mingw-w64)"
|
||||
url="http://liba52.sourceforge.net/"
|
||||
arch=('any')
|
||||
license=('GPL2')
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
|
||||
source=("http://liba52.sourceforge.net/files/${_realname}-${pkgver}.tar.gz"
|
||||
'a52dec-0.7.4-build.patch')
|
||||
'0001-a52dec-0.7.4-build.patch'
|
||||
'0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch')
|
||||
md5sums=('caa9f5bc44232dc8aeea773fea56be80'
|
||||
'fa16f224a7dceb7613824380abef0052')
|
||||
'fa16f224a7dceb7613824380abef0052'
|
||||
'f3e200f41ecd682c6675d1b9c621c23b')
|
||||
|
||||
prepare() {
|
||||
cd "${_realname}-${pkgver}"
|
||||
patch -Np1 -i "${srcdir}/a52dec-0.7.4-build.patch"
|
||||
patch -Np1 -i "${srcdir}/0001-a52dec-0.7.4-build.patch"
|
||||
patch -Np1 -i "${srcdir}/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch"
|
||||
sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.in
|
||||
mv configure.in configure.ac
|
||||
./bootstrap \
|
||||
--prefix=${MINGW_PREFIX}
|
||||
./bootstrap
|
||||
}
|
||||
|
||||
build() {
|
||||
cd ${_realname}-${pkgver}
|
||||
./configure \
|
||||
[[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
|
||||
mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST}
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-shared
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
install -m644 liba52/a52_internal.h "${pkgdir}${MINGW_PREFIX}/include/a52dec/"
|
||||
install -m644 ${srcdir}/${_realname}-${pkgver}/liba52/a52_internal.h "${pkgdir}${MINGW_PREFIX}/include/a52dec/"
|
||||
}
|
||||
|
||||
@@ -1,41 +1,35 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=adwaita-icon-theme
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=3.14.0
|
||||
pkgver=3.18.0
|
||||
pkgrel=1
|
||||
pkgdesc="GNOME icon theme (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://www.gnome.org"
|
||||
license=("GPL")
|
||||
makedepends=("intltool")
|
||||
makedepends=("intltool" "icon-naming-utils")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme"
|
||||
"${MINGW_PACKAGE_PREFIX}-icon-naming-utils"
|
||||
"${MINGW_PACKAGE_PREFIX}-gtk2"
|
||||
"${MINGW_PACKAGE_PREFIX}-librsvg"
|
||||
)
|
||||
groups=("${MINGW_PACKAGE_PREFIX}-gnome")
|
||||
"${MINGW_PACKAGE_PREFIX}-librsvg")
|
||||
options=(!libtool strip staticlibs)
|
||||
install=theme-${CARCH}.install
|
||||
source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz
|
||||
0001-localedir-fix.patch)
|
||||
sha256sums=('afacb6025a18be007e33a9663b92cee9d2745279bb00107a68e09b2806f9541f'
|
||||
'35b66334d0856bc44ef202c8df1bfa11f0be658b31b946ca49afe1c357c61adb')
|
||||
source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz)
|
||||
sha256sums=('5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58')
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/${_realname}-${pkgver}
|
||||
patch -p1 -i ${srcdir}/0001-localedir-fix.patch
|
||||
autoreconf -fvi
|
||||
}
|
||||
|
||||
build() {
|
||||
[ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST}
|
||||
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
|
||||
mkdir ${srcdir}/build-${MINGW_CHOST}
|
||||
cd ${srcdir}/build-${MINGW_CHOST}
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST}
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
@@ -44,4 +38,8 @@ package() {
|
||||
make DESTDIR="$pkgdir" install
|
||||
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib
|
||||
mv ${pkgdir}${MINGW_PREFIX}/share/pkgconfig ${pkgdir}${MINGW_PREFIX}/lib/
|
||||
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING_LGPL ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING_LGPL
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING_CCBYSA3 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING_CCBYSA3
|
||||
}
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
post_install() {
|
||||
mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita
|
||||
mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache
|
||||
[[ -f mingw32/bin/gtk-update-icon-cache.exe ]] && {
|
||||
mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita
|
||||
}
|
||||
[[ -f mingw32/bin/gtk-update-icon-cache-3.0.exe ]] && {
|
||||
mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/Adwaita
|
||||
}
|
||||
[[ -f mingw32/bin/gdk-pixbuf-query-loaders.exe ]] && {
|
||||
mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache
|
||||
}
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
post_install() {
|
||||
mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita
|
||||
mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache
|
||||
[[ -f mingw64/bin/gtk-update-icon-cache.exe ]] && {
|
||||
mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita
|
||||
}
|
||||
[[ -f mingw64/bin/gtk-update-icon-cache-3.0.exe ]] && {
|
||||
mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/Adwaita
|
||||
}
|
||||
[[ -f mingw64/bin/gdk-pixbuf-query-loaders.exe ]] && {
|
||||
mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache
|
||||
}
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
|
||||
@@ -0,0 +1,240 @@
|
||||
From 8ef5dc35835c271e955979af7ccc660a9996debd Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Mon, 23 Feb 2015 21:46:45 +0000
|
||||
Subject: [PATCH 1/6] lang: Allow both extensions and full filenames
|
||||
|
||||
Because many filetypes (e.g. make) are not indicated by the
|
||||
file extension but instead by the full filename (Makefile).
|
||||
|
||||
Renames extension to pattern, but retains the existing format
|
||||
where each pattern is treated as an extension. Full filenames
|
||||
are indicated by prefixing the pattern with a '^'.
|
||||
---
|
||||
src/lang.c | 57 ++++++++++++++++++++++++++++++++++-----------------------
|
||||
src/lang.h | 24 +++++++++++++-----------
|
||||
src/options.c | 28 ++++++++++++++--------------
|
||||
3 files changed, 61 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/src/lang.c b/src/lang.c
|
||||
index 87cdcec..54f51ca 100644
|
||||
--- a/src/lang.c
|
||||
+++ b/src/lang.c
|
||||
@@ -101,20 +101,27 @@ size_t get_lang_count() {
|
||||
return sizeof(langs) / sizeof(lang_spec_t);
|
||||
}
|
||||
|
||||
-char *make_lang_regex(char *ext_array, size_t num_exts) {
|
||||
+char *make_lang_regex(char *pat_array, size_t num_pats) {
|
||||
int regex_capacity = 100;
|
||||
char *regex = ag_malloc(regex_capacity);
|
||||
- int regex_length = 3;
|
||||
+ int regex_length = 1;
|
||||
int subsequent = 0;
|
||||
- char *extension;
|
||||
+ char *pattern;
|
||||
+ const char *dot = "\\.";
|
||||
+ size_t strlen_dot = strlen(dot);
|
||||
size_t i;
|
||||
|
||||
- strcpy(regex, "\\.(");
|
||||
+ strcpy(regex, "(");
|
||||
|
||||
- for (i = 0; i < num_exts; ++i) {
|
||||
- extension = ext_array + i * SINGLE_EXT_LEN;
|
||||
- int extension_length = strlen(extension);
|
||||
- while (regex_length + extension_length + 3 + subsequent > regex_capacity) {
|
||||
+ for (i = 0; i < num_pats; ++i) {
|
||||
+ pattern = pat_array + i * SINGLE_PAT_LEN;
|
||||
+ int is_extension = (*pattern == '^') ? 0 : 1;
|
||||
+ int length = strlen(pattern);
|
||||
+ if (is_extension == 0) {
|
||||
+ pattern += 1;
|
||||
+ length -= 1;
|
||||
+ }
|
||||
+ while (regex_length + length + 3 + subsequent > regex_capacity) {
|
||||
regex_capacity *= 2;
|
||||
regex = ag_realloc(regex, regex_capacity);
|
||||
}
|
||||
@@ -123,8 +130,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) {
|
||||
} else {
|
||||
subsequent = 1;
|
||||
}
|
||||
- strcpy(regex + regex_length, extension);
|
||||
- regex_length += extension_length;
|
||||
+ if (is_extension == 1) {
|
||||
+ strcpy(regex + regex_length, dot);
|
||||
+ regex_length += strlen_dot;
|
||||
+ }
|
||||
+ strcpy(regex + regex_length, pattern);
|
||||
+ regex_length += length;
|
||||
}
|
||||
|
||||
regex[regex_length++] = ')';
|
||||
@@ -133,29 +144,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) {
|
||||
return regex;
|
||||
}
|
||||
|
||||
-size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts) {
|
||||
+size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats) {
|
||||
/* Keep it fixed as 100 for the reason that if you have more than 100
|
||||
* file types to search, you'd better search all the files.
|
||||
* */
|
||||
- size_t ext_capacity = 100;
|
||||
- (*exts) = (char *)ag_malloc(ext_capacity * SINGLE_EXT_LEN);
|
||||
- memset((*exts), 0, ext_capacity * SINGLE_EXT_LEN);
|
||||
- size_t num_of_extensions = 0;
|
||||
+ size_t pat_capacity = 100;
|
||||
+ (*pats) = (char *)ag_malloc(pat_capacity * SINGLE_PAT_LEN);
|
||||
+ memset((*pats), 0, pat_capacity * SINGLE_PAT_LEN);
|
||||
+ size_t num_of_patterns = 0;
|
||||
|
||||
size_t i;
|
||||
for (i = 0; i < len; ++i) {
|
||||
size_t j = 0;
|
||||
- const char *ext = langs[extension_index[i]].extensions[j];
|
||||
+ const char *pat = langs[pattern_index[i]].patterns[j];
|
||||
do {
|
||||
- if (num_of_extensions == ext_capacity) {
|
||||
+ if (num_of_patterns == pat_capacity) {
|
||||
break;
|
||||
}
|
||||
- char *pos = (*exts) + num_of_extensions * SINGLE_EXT_LEN;
|
||||
- strncpy(pos, ext, strlen(ext));
|
||||
- ++num_of_extensions;
|
||||
- ext = langs[extension_index[i]].extensions[++j];
|
||||
- } while (ext);
|
||||
+ char *pos = (*pats) + num_of_patterns * SINGLE_PAT_LEN;
|
||||
+ strncpy(pos, pat, strlen(pat));
|
||||
+ ++num_of_patterns;
|
||||
+ pat = langs[pattern_index[i]].patterns[++j];
|
||||
+ } while (pat);
|
||||
}
|
||||
|
||||
- return num_of_extensions;
|
||||
+ return num_of_patterns;
|
||||
}
|
||||
diff --git a/src/lang.h b/src/lang.h
|
||||
index d0007f9..202da4b 100644
|
||||
--- a/src/lang.h
|
||||
+++ b/src/lang.h
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef LANG_H
|
||||
#define LANG_H
|
||||
|
||||
-#define MAX_EXTENSIONS 12
|
||||
-#define SINGLE_EXT_LEN 20
|
||||
+#define MAX_PATTERNS 12
|
||||
+#define SINGLE_PAT_LEN 20
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
- const char *extensions[MAX_EXTENSIONS];
|
||||
+ const char *patterns[MAX_PATTERNS];
|
||||
} lang_spec_t;
|
||||
|
||||
extern lang_spec_t langs[];
|
||||
@@ -17,20 +17,22 @@ extern lang_spec_t langs[];
|
||||
size_t get_lang_count(void);
|
||||
|
||||
/**
|
||||
-Convert a NULL-terminated array of language extensions
|
||||
-into a regular expression of the form \.(extension1|extension2...)$
|
||||
+Convert a NULL-terminated array of language patterns
|
||||
+into a regular expression of the form (\.?pattern1|\.?pattern2...)$
|
||||
+Patterns that begin with ^ are interpreted as full names, those
|
||||
+without are interpreted as file extensions.
|
||||
|
||||
Caller is responsible for freeing the returned string.
|
||||
*/
|
||||
-char *make_lang_regex(char *ext_array, size_t num_exts);
|
||||
+char *make_lang_regex(char *pat_array, size_t num_pats);
|
||||
|
||||
|
||||
/**
|
||||
-Combine multiple file type extensions into one array.
|
||||
+Combine multiple file type patterns into one array.
|
||||
|
||||
-The combined result is returned through *exts*;
|
||||
-*exts* is one-dimension array, which can contain up to 100 extensions;
|
||||
-The number of extensions that *exts* actually contain is returned.
|
||||
+The combined result is returned through *pats*;
|
||||
+*pats* is one-dimension array, which can contain up to 100 patterns;
|
||||
+The number of patterns that *pats* actually contain is returned.
|
||||
*/
|
||||
-size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts);
|
||||
+size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats);
|
||||
#endif
|
||||
diff --git a/src/options.c b/src/options.c
|
||||
index 88ad65b..bafb1ea 100644
|
||||
--- a/src/options.c
|
||||
+++ b/src/options.c
|
||||
@@ -210,9 +210,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
size_t longopts_len, full_len;
|
||||
option_t *longopts;
|
||||
char *lang_regex = NULL;
|
||||
- size_t *ext_index = NULL;
|
||||
- char *extensions = NULL;
|
||||
- size_t num_exts = 0;
|
||||
+ size_t *pat_index = NULL;
|
||||
+ char *patterns = NULL;
|
||||
+ size_t num_pats = 0;
|
||||
|
||||
init_options();
|
||||
|
||||
@@ -304,8 +304,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
full_len = (longopts_len + lang_count + 1);
|
||||
longopts = ag_malloc(full_len * sizeof(option_t));
|
||||
memcpy(longopts, base_longopts, sizeof(base_longopts));
|
||||
- ext_index = (size_t *)ag_malloc(sizeof(size_t) * lang_count);
|
||||
- memset(ext_index, 0, sizeof(size_t) * lang_count);
|
||||
+ pat_index = (size_t *)ag_malloc(sizeof(size_t) * lang_count);
|
||||
+ memset(pat_index, 0, sizeof(size_t) * lang_count);
|
||||
|
||||
for (i = 0; i < lang_count; i++) {
|
||||
option_t opt = { langs[i].name, no_argument, NULL, 0 };
|
||||
@@ -544,7 +544,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
|
||||
for (i = 0; i < lang_count; i++) {
|
||||
if (strcmp(longopts[opt_index].name, langs[i].name) == 0) {
|
||||
- ext_index[lang_num++] = i;
|
||||
+ pat_index[lang_num++] = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -572,16 +572,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
free(file_search_regex);
|
||||
}
|
||||
|
||||
- if (ext_index[0]) {
|
||||
- num_exts = combine_file_extensions(ext_index, lang_num, &extensions);
|
||||
- lang_regex = make_lang_regex(extensions, num_exts);
|
||||
+ if (pat_index[0]) {
|
||||
+ num_pats = combine_file_patterns(pat_index, lang_num, &patterns);
|
||||
+ lang_regex = make_lang_regex(patterns, num_pats);
|
||||
compile_study(&opts.file_search_regex, &opts.file_search_regex_extra, lang_regex, 0, 0);
|
||||
}
|
||||
|
||||
- if (extensions) {
|
||||
- free(extensions);
|
||||
+ if (patterns) {
|
||||
+ free(patterns);
|
||||
}
|
||||
- free(ext_index);
|
||||
+ free(pat_index);
|
||||
if (lang_regex) {
|
||||
free(lang_regex);
|
||||
}
|
||||
@@ -614,8 +614,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
for (lang_index = 0; lang_index < lang_count; lang_index++) {
|
||||
printf(" --%s\n ", langs[lang_index].name);
|
||||
int j;
|
||||
- for (j = 0; j < MAX_EXTENSIONS && langs[lang_index].extensions[j]; j++) {
|
||||
- printf(" .%s", langs[lang_index].extensions[j]);
|
||||
+ for (j = 0; j < MAX_PATTERNS && langs[lang_index].patterns[j]; j++) {
|
||||
+ printf(" .%s", langs[lang_index].patterns[j]);
|
||||
}
|
||||
printf("\n\n");
|
||||
}
|
||||
--
|
||||
2.6.3
|
||||
|
||||
259
mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch
Normal file
259
mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch
Normal file
@@ -0,0 +1,259 @@
|
||||
From 8560a5b4e4a3c984265c767f7b6fcc5aa787c654 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Mon, 23 Feb 2015 22:12:15 +0000
|
||||
Subject: [PATCH 2/6] options: Fix ordering problems with --color
|
||||
|
||||
Moved around the logic of setting opts.color so that:
|
||||
|
||||
1. If the user explicitly requests or disables it, then
|
||||
that is respected.
|
||||
|
||||
2. Automatic disabling of color doesn't happen for FIFOs
|
||||
on Windows since mintty.exe console handles are pipes.
|
||||
|
||||
3. The old location of the isatty check meant that if the
|
||||
user specified --color, then group would get set to 0,
|
||||
color would be TRUE and the output would not show any
|
||||
filenames at all.
|
||||
|
||||
4. Default color to TRUE if MSYSCON env. var = mintty.exe
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
src/options.c | 148 ++++++++++++++++++++++++++++++++++++----------------------
|
||||
src/options.h | 10 ++++
|
||||
3 files changed, 102 insertions(+), 58 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 42aaf79..9e6b778 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -24,7 +24,7 @@ AX_PTHREAD(
|
||||
)
|
||||
|
||||
# Run CFLAGS="-pg" ./configure if you want debug symbols
|
||||
-CFLAGS="$CFLAGS $PTHREAD_CFLAGS $PCRE_CFLAGS -Wall -Wextra -Wformat=2 -Wno-format-nonliteral -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces -std=gnu89 -D_GNU_SOURCE -O2"
|
||||
+CFLAGS="$CFLAGS $PTHREAD_CFLAGS $PCRE_CFLAGS -Wall -Wextra -Wformat=2 -Wno-format-nonliteral -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces -std=gnu89 -D_GNU_SOURCE -O0"
|
||||
LDFLAGS="$LDFLAGS"
|
||||
|
||||
case $host in
|
||||
diff --git a/src/options.c b/src/options.c
|
||||
index bafb1ea..f329887 100644
|
||||
--- a/src/options.c
|
||||
+++ b/src/options.c
|
||||
@@ -140,8 +140,16 @@ void print_version(void) {
|
||||
void init_options(void) {
|
||||
memset(&opts, 0, sizeof(opts));
|
||||
opts.casing = CASE_DEFAULT;
|
||||
- opts.color = TRUE;
|
||||
- opts.color_win_ansi = FALSE;
|
||||
+ opts.color = COLOR_DEFAULT_TRUE;
|
||||
+#ifdef _WIN32
|
||||
+ const char* env_MSYSCON = getenv("MSYSCON");
|
||||
+ opts.color_win_ansi = ((getenv("ANSICON") || getenv("CMDER_ROOT")
|
||||
+ || (env_MSYSCON && !strcmp(env_MSYSCON, "mintty.exe"))))
|
||||
+ ? COLOR_DEFAULT_TRUE : COLOR_DEFAULT_FALSE;
|
||||
+#else
|
||||
+ opts.color_win_ansi = COLOR_DEFAULT_FALSE;
|
||||
+#endif
|
||||
+
|
||||
opts.max_matches_per_file = 0;
|
||||
opts.max_search_depth = DEFAULT_MAX_SEARCH_DEPTH;
|
||||
opts.multiline = TRUE;
|
||||
@@ -226,11 +234,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
{ "before", optional_argument, NULL, 'B' },
|
||||
{ "break", no_argument, &opts.print_break, 1 },
|
||||
{ "case-sensitive", no_argument, NULL, 's' },
|
||||
- { "color", no_argument, &opts.color, 1 },
|
||||
+ { "color", no_argument, &opts.color, COLOR_EXPLICIT_TRUE },
|
||||
{ "color-line-number", required_argument, NULL, 0 },
|
||||
{ "color-match", required_argument, NULL, 0 },
|
||||
{ "color-path", required_argument, NULL, 0 },
|
||||
- { "color-win-ansi", no_argument, &opts.color_win_ansi, TRUE },
|
||||
+ { "color-win-ansi", no_argument, &opts.color_win_ansi, COLOR_EXPLICIT_TRUE },
|
||||
{ "column", no_argument, &opts.column, 1 },
|
||||
{ "context", optional_argument, NULL, 'C' },
|
||||
{ "count", no_argument, NULL, 'c' },
|
||||
@@ -262,7 +270,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
{ "no-recurse", no_argument, NULL, 'n' },
|
||||
{ "noaffinity", no_argument, &opts.use_thread_affinity, 0 },
|
||||
{ "nobreak", no_argument, &opts.print_break, 0 },
|
||||
- { "nocolor", no_argument, &opts.color, 0 },
|
||||
+ { "nocolor", no_argument, &opts.color, COLOR_EXPLICIT_FALSE },
|
||||
{ "nofilename", no_argument, NULL, 0 },
|
||||
{ "nofollow", no_argument, &opts.follow_symlinks, 0 },
|
||||
{ "nogroup", no_argument, &group, 0 },
|
||||
@@ -327,22 +335,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
}
|
||||
}
|
||||
|
||||
- /* If we're not outputting to a terminal. change output to:
|
||||
- * turn off colors
|
||||
- * print filenames on every line
|
||||
- */
|
||||
- if (!isatty(fileno(stdout))) {
|
||||
- opts.color = 0;
|
||||
- group = 0;
|
||||
-
|
||||
- /* Don't search the file that stdout is redirected to */
|
||||
- rv = fstat(fileno(stdout), &statbuf);
|
||||
- if (rv != 0) {
|
||||
- die("Error fstat()ing stdout");
|
||||
- }
|
||||
- opts.stdout_inode = statbuf.st_ino;
|
||||
- }
|
||||
-
|
||||
char *file_search_regex = NULL;
|
||||
while ((ch = getopt_long(argc, argv, "A:aB:C:cDG:g:FfHhiLlm:nop:QRrSsvVtuUwW:z0", longopts, &opt_index)) != -1) {
|
||||
switch (ch) {
|
||||
@@ -662,42 +654,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
opts.after = opts.context;
|
||||
}
|
||||
|
||||
- if (opts.ackmate) {
|
||||
- opts.color = 0;
|
||||
- opts.print_break = 1;
|
||||
- group = 1;
|
||||
- opts.search_stream = 0;
|
||||
- }
|
||||
-
|
||||
- if (opts.vimgrep) {
|
||||
- opts.color = 0;
|
||||
- opts.print_break = 0;
|
||||
- group = 1;
|
||||
- opts.search_stream = 0;
|
||||
- opts.print_path = PATH_PRINT_NOTHING;
|
||||
- }
|
||||
-
|
||||
- if (opts.parallel) {
|
||||
- opts.search_stream = 0;
|
||||
- }
|
||||
-
|
||||
- if (!(opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0)) {
|
||||
- if (group) {
|
||||
- opts.print_break = 1;
|
||||
- } else {
|
||||
- opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE;
|
||||
- opts.print_break = 0;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (opts.search_stream) {
|
||||
- opts.print_break = 0;
|
||||
- opts.print_path = PATH_PRINT_NOTHING;
|
||||
- if (opts.print_line_numbers != 2) {
|
||||
- opts.print_line_numbers = 0;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
if (accepts_query && argc > 0) {
|
||||
// use the provided query
|
||||
opts.query = ag_strdup(argv[0]);
|
||||
@@ -761,6 +717,84 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
|
||||
(*paths)[i] = NULL;
|
||||
(*base_paths)[i] = NULL;
|
||||
|
||||
+ /* If we're not outputting to a terminal. change output to:
|
||||
+ * turn off colors
|
||||
+ * print filenames on every line
|
||||
+ */
|
||||
+ if (!isatty(fileno(stdout))) {
|
||||
+ /* Don't search the file that stdout is redirected to */
|
||||
+ rv = fstat(fileno(stdout), &statbuf);
|
||||
+ if (rv != 0) {
|
||||
+ die("Error fstat()ing stdout");
|
||||
+ }
|
||||
+ opts.stdout_inode = statbuf.st_ino;
|
||||
+ /* Assume the user knows best */
|
||||
+ if (opts.color != COLOR_EXPLICIT_TRUE) {
|
||||
+ /* On Windows redirection to regular file *can* br detected via
|
||||
+ statbuf.st_mode & S_IFREG (while statbuf.st_ino is always 0) */
|
||||
+ if (statbuf.st_ino != 0
|
||||
+ || statbuf.st_mode & S_IFREG
|
||||
+#if !defined(_WIN32)
|
||||
+ /* On Windows bash.exe pipes cannot be distinguished from cmd.exe
|
||||
+ pipes or mintty.exe console output (statbuf.st_mode & S_IFIFO)
|
||||
+ so its best not to disable color output here. */
|
||||
+ || statbuf.st_mode & S_IFIFO
|
||||
+#endif
|
||||
+ ) {
|
||||
+ opts.color = COLOR_DEFAULT_FALSE;
|
||||
+ group = 0;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (opts.ackmate) {
|
||||
+ opts.color = COLOR_EMULATION_FALSE;
|
||||
+ opts.print_break = 1;
|
||||
+ group = 1;
|
||||
+ opts.search_stream = 0;
|
||||
+ }
|
||||
+
|
||||
+ if (opts.vimgrep) {
|
||||
+ opts.color = COLOR_EMULATION_FALSE;
|
||||
+ opts.print_break = 0;
|
||||
+ group = 1;
|
||||
+ opts.search_stream = 0;
|
||||
+ opts.print_path = PATH_PRINT_NOTHING;
|
||||
+ }
|
||||
+
|
||||
+ if (opts.parallel) {
|
||||
+ opts.search_stream = 0;
|
||||
+ }
|
||||
+
|
||||
+ if (!(opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0)) {
|
||||
+ if (group) {
|
||||
+ opts.print_break = 1;
|
||||
+ } else {
|
||||
+ opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE;
|
||||
+ opts.print_break = 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (opts.search_stream) {
|
||||
+ opts.print_break = 0;
|
||||
+ opts.print_path = PATH_PRINT_NOTHING;
|
||||
+ if (opts.print_line_numbers != 2) {
|
||||
+ opts.print_line_numbers = 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (opts.color == COLOR_DEFAULT_FALSE || opts.color == COLOR_EXPLICIT_FALSE ||
|
||||
+ opts.color == COLOR_EMULATION_FALSE) {
|
||||
+ opts.color = COLOR_FALSE;
|
||||
+ } else {
|
||||
+ opts.color = COLOR_TRUE;
|
||||
+ }
|
||||
+ if (opts.color_win_ansi == COLOR_DEFAULT_FALSE) {
|
||||
+ opts.color_win_ansi = COLOR_FALSE;
|
||||
+ } else {
|
||||
+ opts.color_win_ansi = COLOR_TRUE;
|
||||
+ }
|
||||
+
|
||||
#ifdef _WIN32
|
||||
windows_use_ansi(opts.color_win_ansi);
|
||||
#endif
|
||||
diff --git a/src/options.h b/src/options.h
|
||||
index ac213f2..2cf8c68 100644
|
||||
--- a/src/options.h
|
||||
+++ b/src/options.h
|
||||
@@ -26,6 +26,16 @@ enum path_print_behavior {
|
||||
PATH_PRINT_NOTHING
|
||||
};
|
||||
|
||||
+enum color_behaviour {
|
||||
+ COLOR_FALSE = 0,
|
||||
+ COLOR_TRUE = 1,
|
||||
+ COLOR_DEFAULT_FALSE,
|
||||
+ COLOR_DEFAULT_TRUE,
|
||||
+ COLOR_EXPLICIT_FALSE,
|
||||
+ COLOR_EXPLICIT_TRUE,
|
||||
+ COLOR_EMULATION_FALSE,
|
||||
+};
|
||||
+
|
||||
typedef struct {
|
||||
int ackmate;
|
||||
pcre *ackmate_dir_filter;
|
||||
--
|
||||
2.6.3
|
||||
|
||||
24
mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch
Normal file
24
mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
From 8a1495dce46227097c73adfbeb55cc4dea9c1a3d Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Mon, 23 Feb 2015 22:16:54 +0000
|
||||
Subject: [PATCH 3/6] lang: Add autotools (ac, am, in, m4, pc)
|
||||
|
||||
---
|
||||
src/lang.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/lang.c b/src/lang.c
|
||||
index 54f51ca..b5b2a2b 100644
|
||||
--- a/src/lang.c
|
||||
+++ b/src/lang.c
|
||||
@@ -8,6 +8,7 @@ lang_spec_t langs[] = {
|
||||
{ "actionscript", { "as", "mxml" } },
|
||||
{ "ada", { "ada", "adb", "ads" } },
|
||||
{ "asm", { "asm", "s" } },
|
||||
+ { "autotools", { "ac", "am", "in", "m4", "pc" } },
|
||||
{ "batch", { "bat", "cmd" } },
|
||||
{ "bitbake", { "bb", "bbappend", "bbclass", "inc" } },
|
||||
{ "bro", { "bro", "bif" } },
|
||||
--
|
||||
2.6.3
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 778583071e6b237db7e80f08b63e62a6f1dc5d98 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Mon, 23 Feb 2015 22:18:27 +0000
|
||||
Subject: [PATCH 4/6] lang: Add to make (^Makefile, ^Makefile.Debug,
|
||||
^Makefile.Release, *.make)
|
||||
|
||||
All but one addition are full filename patterns. The
|
||||
Makefile.Debug and Makefile.Release ones are used by Qt, the *.make
|
||||
one is used by CMake.
|
||||
---
|
||||
src/lang.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/lang.c b/src/lang.c
|
||||
index b5b2a2b..ede3b85 100644
|
||||
--- a/src/lang.c
|
||||
+++ b/src/lang.c
|
||||
@@ -45,7 +45,7 @@ lang_spec_t langs[] = {
|
||||
{ "lisp", { "lisp", "lsp" } },
|
||||
{ "lua", { "lua" } },
|
||||
{ "m4", { "m4" } },
|
||||
- { "make", { "Makefiles", "mk", "mak" } },
|
||||
+ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak", "make" } },
|
||||
{ "mako", { "mako" } },
|
||||
{ "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } },
|
||||
{ "mason", { "mas", "mhtml", "mpl", "mtxt" } },
|
||||
--
|
||||
2.6.3
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 7faacc6b0552fb87e34f6b4ff7afc6b37edcfb68 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Mon, 23 Feb 2015 22:21:26 +0000
|
||||
Subject: [PATCH 5/6] lang: Add makepkg (^PKGBUILD, diff, patch, in, install)
|
||||
|
||||
Used by the makepkg build system of ArchLinux and MSYS2
|
||||
---
|
||||
src/lang.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/lang.c b/src/lang.c
|
||||
index ede3b85..fc4ae6b 100644
|
||||
--- a/src/lang.c
|
||||
+++ b/src/lang.c
|
||||
@@ -46,6 +46,7 @@ lang_spec_t langs[] = {
|
||||
{ "lua", { "lua" } },
|
||||
{ "m4", { "m4" } },
|
||||
{ "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak", "make" } },
|
||||
+ { "makepkg", { "^PKGBUILD", "diff", "patch", "in", "install" } },
|
||||
{ "mako", { "mako" } },
|
||||
{ "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } },
|
||||
{ "mason", { "mas", "mhtml", "mpl", "mtxt" } },
|
||||
--
|
||||
2.6.3
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 10d70a323b34491746fc2e563c7765b54ab7f0e9 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Sat, 12 Dec 2015 19:55:47 +0000
|
||||
Subject: [PATCH 6/6] lang: Add cmake (^CMakeLists.txt, ^CMakeCache.txt ..
|
||||
|
||||
.. ^CMakeError.log, ^CMakeOutput.log, cmake)
|
||||
---
|
||||
src/lang.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/lang.c b/src/lang.c
|
||||
index fc4ae6b..77a32dd 100644
|
||||
--- a/src/lang.c
|
||||
+++ b/src/lang.c
|
||||
@@ -15,6 +15,7 @@ lang_spec_t langs[] = {
|
||||
{ "cc", { "c", "h", "xs" } },
|
||||
{ "cfmx", { "cfc", "cfm", "cfml" } },
|
||||
{ "clojure", { "clj", "cljs", "cljc", "cljx" } },
|
||||
+ { "cmake", { "^CMakeLists.txt", "^CMakeCache.txt", "^CMakeError.log", "^CMakeOutput.log", "cmake" } },
|
||||
{ "coffee", { "coffee", "cjsx" } },
|
||||
{ "cpp", { "cpp", "cc", "C", "cxx", "m", "hpp", "hh", "h", "H", "hxx" } },
|
||||
{ "crystal", { "cr", "ecr" } },
|
||||
--
|
||||
2.6.3
|
||||
|
||||
74
mingw-w64-ag/PKGBUILD
Normal file
74
mingw-w64-ag/PKGBUILD
Normal file
@@ -0,0 +1,74 @@
|
||||
# Maintainer: Ray Donnelly <mingw.android@gmail.com>
|
||||
# Maintainer: Martell Malone <martellmalone@gmail.com>
|
||||
|
||||
_realname=ag
|
||||
_longname=the_silver_searcher
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=0.31.0.r1666.0e577cc
|
||||
pkgrel=1
|
||||
pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://geoff.greer.fm/ag"
|
||||
license=("Apache")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-pkg-config"
|
||||
"git")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-pcre"
|
||||
"${MINGW_PACKAGE_PREFIX}-xz"
|
||||
"${MINGW_PACKAGE_PREFIX}-zlib")
|
||||
options=('staticlibs') # '!strip' 'debug')
|
||||
source=("${_realname}"::"git+https://github.com/ggreer/the_silver_searcher.git"
|
||||
"0001-lang-Allow-both-extensions-and-full-filenames.patch"
|
||||
"0002-options-Fix-ordering-problems-with-color.patch"
|
||||
"0003-lang-Add-autotools-ac-am-in-m4-pc.patch"
|
||||
"0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch"
|
||||
"0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch"
|
||||
"0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch")
|
||||
md5sums=('SKIP'
|
||||
'73e60af8e8f0eb12e69797a6377b3ba9'
|
||||
'8364f2765d95d3a550cd7698c3540ab6'
|
||||
'6dc9b48f11616f2392935d3297bdabbc'
|
||||
'e40bea74e7b32da3543d635e1984be64'
|
||||
'40ef6ecb9db4c7b8ae6e8a13b5ecafb8'
|
||||
'75e55c3d88d435994e8562d29ada825e')
|
||||
|
||||
pkgver() {
|
||||
cd ${srcdir}/${_realname}
|
||||
local AC_INIT_VER=$(grep AC_INIT configure.ac -A5 | tr '\n' ' ' | sed -e 's/AC_INIT([^,]\+,\s*\[\?\([0-9.a-z]\+\).*/\1/')
|
||||
printf "%s.r%s.%s" "${AC_INIT_VER}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}"/${_realname}
|
||||
git am "${srcdir}"/0001-lang-Allow-both-extensions-and-full-filenames.patch
|
||||
git am "${srcdir}"/0002-options-Fix-ordering-problems-with-color.patch
|
||||
git am "${srcdir}"/0003-lang-Add-autotools-ac-am-in-m4-pc.patch
|
||||
git am "${srcdir}"/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch
|
||||
git am "${srcdir}"/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch
|
||||
git am "${srcdir}"/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch
|
||||
|
||||
# configure.ac forces -O2, so force it to -O0 if debugging.
|
||||
if check_option "debug" "y"; then
|
||||
sed -i "s#-O2#-O0#g" configure.ac
|
||||
fi
|
||||
|
||||
autoreconf -fi
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
mkdir -p "${srcdir}/build-${CARCH}"
|
||||
cd "${srcdir}/build-${CARCH}"
|
||||
|
||||
"${srcdir}"/${_realname}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--{build,host}=${MINGW_CHOST}
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${CARCH}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
||||
@@ -1,70 +1,62 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=allegro
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=5.0.10
|
||||
pkgrel=2
|
||||
pkgver=5.1.12.0
|
||||
pkgrel=1
|
||||
pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)"
|
||||
arch=(any)
|
||||
url="http://alleg.sourceforge.net"
|
||||
license=("custom")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-cmake"
|
||||
"${MINGW_PACKAGE_PREFIX}-freetype"
|
||||
"${MINGW_PACKAGE_PREFIX}-physfs"
|
||||
"${MINGW_PACKAGE_PREFIX}-libvorbis"
|
||||
"${MINGW_PACKAGE_PREFIX}-flac"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-openal"
|
||||
"${MINGW_PACKAGE_PREFIX}-dumb"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo")
|
||||
url="http://liballeg.org/"
|
||||
license=("ZLIB")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
|
||||
"${MINGW_PACKAGE_PREFIX}-dumb"
|
||||
"${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-flac"
|
||||
"${MINGW_PACKAGE_PREFIX}-freetype"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng"
|
||||
"${MINGW_PACKAGE_PREFIX}-libvorbis"
|
||||
"${MINGW_PACKAGE_PREFIX}-openal"
|
||||
"${MINGW_PACKAGE_PREFIX}-physfs"
|
||||
"${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
|
||||
optdepends=(
|
||||
"${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-flac: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-freetype: allegro_font"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo: allegro_image"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng: allegro_image"
|
||||
"${MINGW_PACKAGE_PREFIX}-libvorbis: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-openal: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs")
|
||||
optdepends=("${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-flac: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-freetype: allegro_font"
|
||||
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo: allegro_image"
|
||||
"${MINGW_PACKAGE_PREFIX}-libpng: allegro_image"
|
||||
"${MINGW_PACKAGE_PREFIX}-libvorbis: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-openal: allegro_audio"
|
||||
"${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs")
|
||||
options=('strip' 'staticlibs')
|
||||
source=("http://downloads.sourceforge.net/alleg/allegro-$pkgver.tar.gz")
|
||||
source=(${_realname}-${pkgver}.tar.gz::https://github.com/liballeg/allegro5/archive/${pkgver}.tar.gz)
|
||||
conflicts=("${MINGW_PACKAGE_PREFIX}-allegro-static")
|
||||
provides=("${MINGW_PACKAGE_PREFIX}-allegro-static")
|
||||
sha256sums=('71b81080f34f6e485edd0c51f22923c18ff967d5db438e591e6f3885d5bdcda1')
|
||||
sha256sums=('4d9aa8a4cc83fd0887f00969aa5ce8d141a3838fa31cd937d019b4319a73a793')
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/allegro-$pkgver"
|
||||
cd "${srcdir}/${_realname}5-${pkgver}"
|
||||
sed -i "s,DS3DALG_DEFAULT,GUID_NULL,g" "addons/audio/dsound.cpp"
|
||||
}
|
||||
|
||||
build() {
|
||||
mkdir -p ${pkgdir}${MINGW_PREFIX}
|
||||
pushd ${pkgdir}${MINGW_PREFIX} > /dev/null
|
||||
export PREFIX_WIN=`pwd -W`
|
||||
popd > /dev/null
|
||||
|
||||
pushd ${MINGW_PREFIX} > /dev/null
|
||||
export PREFIX_DEPS=`pwd -W`
|
||||
popd > /dev/null
|
||||
|
||||
export DXSDK_DIR=${PREFIX_DEPS}/${MINGW_CHOST}
|
||||
mkdir "$srcdir/build-${MINGW_CHOST}" && cd "$srcdir/build-${MINGW_CHOST}"
|
||||
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||
${MINGW_PREFIX}/bin/cmake \
|
||||
-G"MSYS Makefiles" \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DWANT_DEMO=OFF \
|
||||
-DWANT_DOCS=OFF \
|
||||
-DWANT_EXAMPLES=OFF \
|
||||
-DINSTALL_PKG_CONFIG_FILES=ON \
|
||||
../${_realname}-${pkgver}
|
||||
../${_realname}5-${pkgver}
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/build-${MINGW_CHOST}"
|
||||
make install
|
||||
find "${pkgdir}${MINGW_PREFIX}" -name '*.bat' -o -name '*.def' -o -name '*.exp' | xargs -rtl1 rm
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR=${pkgdir} install
|
||||
}
|
||||
|
||||
77
mingw-w64-angleproject-git/0000-build-fix.patch
Normal file
77
mingw-w64-angleproject-git/0000-build-fix.patch
Normal file
@@ -0,0 +1,77 @@
|
||||
diff --git a/src/angle.gyp b/src/angle.gyp
|
||||
index 4095547..3db4840 100644
|
||||
--- a/src/angle.gyp
|
||||
+++ b/src/angle.gyp
|
||||
@@ -76,7 +76,7 @@
|
||||
[
|
||||
{
|
||||
'destination': '<(angle_gen_path)',
|
||||
- 'files': [ 'copy_compiler_dll.bat', '<(angle_id_script_base)' ],
|
||||
+ 'files': [ '<(angle_id_script_base)' ],
|
||||
},
|
||||
],
|
||||
'conditions':
|
||||
@@ -206,10 +206,10 @@
|
||||
'outputs': [ '<(PRODUCT_DIR)/d3dcompiler_47.dll' ],
|
||||
'action':
|
||||
[
|
||||
- "<(angle_gen_path)/copy_compiler_dll.bat",
|
||||
- "$(PlatformName)",
|
||||
- "<(windows_sdk_path)",
|
||||
- "<(PRODUCT_DIR)"
|
||||
+# "<(angle_gen_path)/copy_compiler_dll.bat",
|
||||
+# "$(PlatformName)",
|
||||
+# "<(windows_sdk_path)",
|
||||
+# "<(PRODUCT_DIR)"
|
||||
],
|
||||
},
|
||||
], #actions
|
||||
diff --git a/src/common/mathutil.h b/src/common/mathutil.h
|
||||
index e096b1a..716aeb6 100644
|
||||
--- a/src/common/mathutil.h
|
||||
+++ b/src/common/mathutil.h
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <algorithm>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
+#include <intrin.h>
|
||||
|
||||
namespace gl
|
||||
{
|
||||
diff --git a/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp b/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
|
||||
index cdf3b8e..59aacb8 100644
|
||||
--- a/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
|
||||
+++ b/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2darrayps.h"
|
||||
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2darrayps.h"
|
||||
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2darrayps.h"
|
||||
+#include <float.h>
|
||||
|
||||
namespace rx
|
||||
{
|
||||
diff --git a/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp b/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
|
||||
index ae42f36..0f1fed8 100644
|
||||
--- a/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
|
||||
+++ b/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
|
||||
#include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
|
||||
#include "third_party/murmurhash/MurmurHash3.h"
|
||||
+#include <float.h>
|
||||
|
||||
namespace rx
|
||||
{
|
||||
diff --git a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h
|
||||
index c4b79ee..f22609b 100644
|
||||
--- a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h
|
||||
+++ b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h
|
||||
@@ -23,7 +23,7 @@ typedef HGLRC(WINAPI *PFNWGLCREATELAYERCONTEXTPROC)(HDC, int);
|
||||
typedef BOOL(WINAPI *PFNWGLDELETECONTEXTPROC)(HGLRC);
|
||||
typedef HGLRC(WINAPI *PFNWGLGETCURRENTCONTEXTPROC)(VOID);
|
||||
typedef HDC(WINAPI *PFNWGLGETCURRENTDCPROC)(VOID);
|
||||
-typedef PROC(WINAPI *PFNWGLGETPROCADDRESSPROC)(LPCSTR);
|
||||
+typedef void*(WINAPI *PFNWGLGETPROCADDRESSPROC)(LPCSTR);
|
||||
typedef BOOL(WINAPI *PFNWGLMAKECURRENTPROC)(HDC, HGLRC);
|
||||
typedef BOOL(WINAPI *PFNWGLSHARELISTSPROC)(HGLRC, HGLRC);
|
||||
typedef BOOL(WINAPI *PFNWGLUSEFONTBITMAPSAPROC)(HDC, DWORD, DWORD, DWORD);
|
||||
@@ -1,31 +0,0 @@
|
||||
From 88297d02fd1aed6cac258b72d9d0a8baabad6203 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hartmann <Thomas.Hartmann@digia.com>
|
||||
Date: Mon, 17 Feb 2014 16:56:51 +0200
|
||||
Subject: [PATCH] Fix compilation for MSVC 2008 and std::tuple
|
||||
|
||||
For MSVC 2008 make_tuple is in the tr1 namespace.
|
||||
|
||||
Change-Id: I4a51f6cabdf068993869b404b12ed1484a21a9d4
|
||||
---
|
||||
src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
|
||||
index 610a5ef..51d7f0b 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
|
||||
@@ -81,7 +81,11 @@ IndexRangeCache::IndexRange::IndexRange(GLenum typ, intptr_t off, GLsizei c)
|
||||
|
||||
bool IndexRangeCache::IndexRange::operator<(const IndexRange& rhs) const
|
||||
{
|
||||
+#if defined(_MSC_VER) && _MSC_VER < 1600
|
||||
+ return std::tr1::make_tuple(type, offset, count) < std::tr1::make_tuple(rhs.type, rhs.offset, rhs.count);
|
||||
+#else
|
||||
return std::make_tuple(type, offset, count) < std::make_tuple(rhs.type, rhs.offset, rhs.count);
|
||||
+#endif
|
||||
}
|
||||
|
||||
IndexRangeCache::IndexBounds::IndexBounds()
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From 95e3ca47772ef0552662b1d04b7ee08d9d1d2338 Mon Sep 17 00:00:00 2001
|
||||
From: Kai Koehne <kai.koehne@digia.com>
|
||||
Date: Mon, 17 Feb 2014 16:59:19 +0200
|
||||
Subject: [PATCH] Fix compilation of ANGLE with mingw-tdm64 gcc 4.8.1
|
||||
|
||||
Do not rely on sprintf_s being declared/defined. This also fixes
|
||||
deployment to Windows XP.
|
||||
|
||||
See https://chromium-review.googlesource.com/#/c/182975/ for a similar
|
||||
commit proposed upstream.
|
||||
|
||||
Task-number: QTBUG-36242
|
||||
Change-Id: I520e2f61aeab34963e7a57baafd413c7db93f110
|
||||
---
|
||||
src/3rdparty/angle/src/libEGL/Display.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp
|
||||
index a382c3b..13ef701 100644
|
||||
--- a/src/3rdparty/angle/src/libEGL/Display.cpp
|
||||
+++ b/src/3rdparty/angle/src/libEGL/Display.cpp
|
||||
@@ -523,7 +523,7 @@ void Display::initVendorString()
|
||||
if (mRenderer && mRenderer->getLUID(&adapterLuid))
|
||||
{
|
||||
char adapterLuidString[64];
|
||||
- sprintf_s(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart);
|
||||
+ snprintf(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart);
|
||||
|
||||
mVendorString += adapterLuidString;
|
||||
}
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
From a03d8f647816767525489a2b26663d897f0264a0 Mon Sep 17 00:00:00 2001
|
||||
From: Kai Koehne <kai.koehne@digia.com>
|
||||
Date: Tue, 18 Feb 2014 09:34:39 +0200
|
||||
Subject: [PATCH] Fix compilation with MinGW gcc 64 bit
|
||||
|
||||
Fix compilation of ANGLE with gcc 4.8.0 64 bit: The
|
||||
|
||||
reinterpret_cast<unsigned long>(void*)
|
||||
|
||||
was causing
|
||||
|
||||
error: cast from 'const void*' to 'long unsigned int' loses precision
|
||||
|
||||
Task-number: QTBUG-34395
|
||||
Change-Id: Ibde75dd4b5536f3827bdf0ab02a15e93a1a8a4f0
|
||||
---
|
||||
src/3rdparty/angle/src/third_party/trace_event/trace_event.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
|
||||
index 1880056..637cf9a 100644
|
||||
--- a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
|
||||
+++ b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
|
||||
@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0;
|
||||
class TraceID {
|
||||
public:
|
||||
explicit TraceID(const void* id, unsigned char* flags) :
|
||||
- m_data(static_cast<unsigned long long>(reinterpret_cast<unsigned long>(id)))
|
||||
+ m_data(reinterpret_cast<unsigned long long>(id))
|
||||
{
|
||||
*flags |= TRACE_EVENT_FLAG_MANGLE_ID;
|
||||
}
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
From 9b24b25eeb5ca97d7978c6840fdb1e903bf63a55 Mon Sep 17 00:00:00 2001
|
||||
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
||||
Date: Tue, 18 Feb 2014 09:52:52 +0200
|
||||
Subject: [PATCH] Make it possible to link ANGLE statically for
|
||||
single-thread use.
|
||||
|
||||
Fix exports and provide static instances of thread-local
|
||||
data depending on QT_OPENGL_ES_2_ANGLE_STATIC.
|
||||
|
||||
Change-Id: Ifab25a820adf5953bb3b09036de53dbf7f1a7fd5
|
||||
---
|
||||
src/3rdparty/angle/include/KHR/khrplatform.h | 2 +-
|
||||
src/3rdparty/angle/src/libEGL/main.cpp | 6 ++++++
|
||||
src/3rdparty/angle/src/libGLESv2/main.cpp | 6 ++++++
|
||||
3 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/include/KHR/khrplatform.h b/src/3rdparty/angle/include/KHR/khrplatform.h
|
||||
index c9e6f17..1ac2d3f 100644
|
||||
--- a/src/3rdparty/angle/include/KHR/khrplatform.h
|
||||
+++ b/src/3rdparty/angle/include/KHR/khrplatform.h
|
||||
@@ -97,7 +97,7 @@
|
||||
*-------------------------------------------------------------------------
|
||||
* This precedes the return type of the function in the function prototype.
|
||||
*/
|
||||
-#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
|
||||
+#if defined(_WIN32) && !defined(__SCITECH_SNAP__) && !defined(QT_OPENGL_ES_2_ANGLE_STATIC)
|
||||
# define KHRONOS_APICALL __declspec(dllimport)
|
||||
#elif defined (__SYMBIAN32__)
|
||||
# define KHRONOS_APICALL IMPORT_C
|
||||
diff --git a/src/3rdparty/angle/src/libEGL/main.cpp b/src/3rdparty/angle/src/libEGL/main.cpp
|
||||
index 80dcc34..772b8eb 100644
|
||||
--- a/src/3rdparty/angle/src/libEGL/main.cpp
|
||||
+++ b/src/3rdparty/angle/src/libEGL/main.cpp
|
||||
@@ -106,7 +106,13 @@ namespace egl
|
||||
|
||||
Current *GetCurrentData()
|
||||
{
|
||||
+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC
|
||||
Current *current = (Current*)TlsGetValue(currentTLS);
|
||||
+#else
|
||||
+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt.
|
||||
+ static Current s_current = { EGL_SUCCESS, EGL_OPENGL_ES_API, EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE };
|
||||
+ Current *current = &s_current;
|
||||
+#endif
|
||||
|
||||
// ANGLE issue 488: when the dll is loaded after thread initialization,
|
||||
// thread local storage (current) might not exist yet.
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/main.cpp b/src/3rdparty/angle/src/libGLESv2/main.cpp
|
||||
index 50e2593..6b459d3 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/main.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/main.cpp
|
||||
@@ -89,7 +89,13 @@ namespace gl
|
||||
|
||||
Current *GetCurrentData()
|
||||
{
|
||||
+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC
|
||||
Current *current = (Current*)TlsGetValue(currentTLS);
|
||||
+#else
|
||||
+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt.
|
||||
+ static Current s_current = { 0, 0 };
|
||||
+ Current *current = &s_current;
|
||||
+#endif
|
||||
|
||||
// ANGLE issue 488: when the dll is loaded after thread initialization,
|
||||
// thread local storage (current) might not exist yet.
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
From cebc37237a74a130dffaefad0a10da17abc42981 Mon Sep 17 00:00:00 2001
|
||||
From: Andy Shaw <andy.shaw@digia.com>
|
||||
Date: Tue, 18 Feb 2014 09:59:17 +0200
|
||||
Subject: [PATCH] Fix build when SSE2 is not available.
|
||||
|
||||
Although SSE2 support is detected at runtime it still may not be
|
||||
available at build time, so we have to ensure it only uses SSE2
|
||||
when it is available at build time too.
|
||||
|
||||
Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
|
||||
---
|
||||
src/3rdparty/angle/src/libGLESv2/mathutil.h | 2 ++
|
||||
src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp | 6 +++++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/mathutil.h b/src/3rdparty/angle/src/libGLESv2/mathutil.h
|
||||
index f902131..6474b66 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/mathutil.h
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/mathutil.h
|
||||
@@ -92,6 +92,7 @@ inline bool supportsSSE2()
|
||||
return supports;
|
||||
}
|
||||
|
||||
+#if defined(_M_IX86) || defined(_M_AMD64) // ARM doesn't provide __cpuid()
|
||||
int info[4];
|
||||
__cpuid(info, 0);
|
||||
|
||||
@@ -101,6 +102,7 @@ inline bool supportsSSE2()
|
||||
|
||||
supports = (info[3] >> 26) & 1;
|
||||
}
|
||||
+#endif
|
||||
|
||||
checked = true;
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
|
||||
index 8511946..cd12d8c 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
|
||||
@@ -373,11 +373,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh
|
||||
switch (mInternalFormat)
|
||||
{
|
||||
case GL_ALPHA8_EXT:
|
||||
+#if defined(__SSE2__)
|
||||
if (gl::supportsSSE2())
|
||||
{
|
||||
loadAlphaDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
|
||||
}
|
||||
else
|
||||
+#endif
|
||||
{
|
||||
loadAlphaDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
|
||||
}
|
||||
@@ -413,11 +415,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh
|
||||
loadRGB565DataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
|
||||
break;
|
||||
case GL_RGBA8_OES:
|
||||
+#if defined(__SSE2__)
|
||||
if (gl::supportsSSE2())
|
||||
{
|
||||
loadRGBAUByteDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
|
||||
}
|
||||
else
|
||||
+#endif
|
||||
{
|
||||
loadRGBAUByteDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
|
||||
}
|
||||
@@ -729,4 +733,4 @@ void Image9::copy(GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width,
|
||||
mDirty = true;
|
||||
}
|
||||
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
From 68ba96d224a84389567f506661a78c32b307e84d Mon Sep 17 00:00:00 2001
|
||||
From: Kai Koehne <kai.koehne@digia.com>
|
||||
Date: Tue, 18 Feb 2014 10:29:14 +0200
|
||||
Subject: [PATCH] Fix compilation of libGLESv2 with older MinGW-w64
|
||||
headers
|
||||
|
||||
Fix compilation of libGLESv2 for mingw-headers predating MinGW-w64
|
||||
svn commit 5567 (like MinGW-builds gcc 4.7.2-rev8, the toolchain
|
||||
we officially support).
|
||||
|
||||
Commit 5567 added the D3DCOMPILER_DLL define to d3dcompiler.h, but with
|
||||
a trailing semicolon that has then fixed in commit 5783. Any toolchain
|
||||
that ships MinGW-w64 headers from a version in between (like
|
||||
MinGW-builds gcc 4.7.2-rev11) will unfortunately remain broken.
|
||||
|
||||
Change-Id: I31272a1a991c4fc0f1611f8fb7510be51d6bb925
|
||||
---
|
||||
.../angle/src/libGLESv2/renderer/Renderer.cpp | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
index 3407353..e74120d 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
@@ -24,6 +24,25 @@
|
||||
#define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT(1, 0x876, 380)
|
||||
#endif
|
||||
|
||||
+#ifdef __MINGW32__
|
||||
+
|
||||
+#ifndef D3DCOMPILER_DLL
|
||||
+
|
||||
+// Add define + typedefs for older MinGW-w64 headers (pre 5783)
|
||||
+
|
||||
+#define D3DCOMPILER_DLL L"d3dcompiler_43.dll"
|
||||
+
|
||||
+HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename,
|
||||
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
|
||||
+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
|
||||
+typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const char *filename,
|
||||
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
|
||||
+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
|
||||
+
|
||||
+#endif // D3DCOMPILER_DLL
|
||||
+
|
||||
+#endif // __MINGW32__
|
||||
+
|
||||
namespace rx
|
||||
{
|
||||
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,143 +0,0 @@
|
||||
From e1b26c6669cafb5c1298d6e5476c24686fccf1bd Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Thu, 20 Feb 2014 16:46:15 +0200
|
||||
Subject: [PATCH] Make DX9/DX11 support configurable
|
||||
|
||||
ANGLE supports selecting the renderer on creation, choosing between
|
||||
D3D11 and D3D9 backends. This patch improves upon this by enabling the
|
||||
D3D backend(s) at compile time. This can make the binary size smaller
|
||||
(no extra render is built) and ensures compatibility with Windows Runtime
|
||||
when building only the D3D11 renderer.
|
||||
|
||||
Change-Id: Id9473e0e631721083fe4026d475e37603a144c37
|
||||
---
|
||||
src/3rdparty/angle/src/libEGL/Display.cpp | 4 +++-
|
||||
src/3rdparty/angle/src/libGLESv2/Texture.cpp | 6 +++++-
|
||||
src/3rdparty/angle/src/libGLESv2/precompiled.h | 10 +++++++---
|
||||
.../angle/src/libGLESv2/renderer/Renderer.cpp | 19 +++++++++++++------
|
||||
4 files changed, 28 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp
|
||||
index 13ef701..a7f5f5a 100644
|
||||
--- a/src/3rdparty/angle/src/libEGL/Display.cpp
|
||||
+++ b/src/3rdparty/angle/src/libEGL/Display.cpp
|
||||
@@ -471,7 +471,6 @@ bool Display::hasExistingWindowSurface(HWND window)
|
||||
|
||||
void Display::initExtensionString()
|
||||
{
|
||||
- HMODULE swiftShader = GetModuleHandle(TEXT("swiftshader_d3d9.dll"));
|
||||
bool shareHandleSupported = mRenderer->getShareHandleSupport();
|
||||
|
||||
mExtensionString = "";
|
||||
@@ -487,10 +486,13 @@ void Display::initExtensionString()
|
||||
|
||||
mExtensionString += "EGL_ANGLE_query_surface_pointer ";
|
||||
|
||||
+#if defined(ANGLE_ENABLE_D3D9)
|
||||
+ HMODULE swiftShader = GetModuleHandle(TEXT("swiftshader_d3d9.dll"));
|
||||
if (swiftShader)
|
||||
{
|
||||
mExtensionString += "EGL_ANGLE_software_display ";
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (shareHandleSupported)
|
||||
{
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/Texture.cpp b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
|
||||
index 3deecaf..3257d05 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/Texture.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
|
||||
@@ -14,7 +14,11 @@
|
||||
#include "libGLESv2/main.h"
|
||||
#include "libGLESv2/mathutil.h"
|
||||
#include "libGLESv2/utilities.h"
|
||||
-#include "libGLESv2/renderer/d3d9/Blit.h"
|
||||
+#if defined(ANGLE_ENABLE_D3D9)
|
||||
+# include "libGLESv2/renderer/d3d9/Blit.h"
|
||||
+#else
|
||||
+# define D3DFMT_UNKNOWN DXGI_FORMAT_UNKNOWN
|
||||
+#endif
|
||||
#include "libGLESv2/Renderbuffer.h"
|
||||
#include "libGLESv2/renderer/Image.h"
|
||||
#include "libGLESv2/renderer/Renderer.h"
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/precompiled.h b/src/3rdparty/angle/src/libGLESv2/precompiled.h
|
||||
index 58ad181..79490b1 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/precompiled.h
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/precompiled.h
|
||||
@@ -32,10 +32,14 @@
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
-#include <d3d9.h>
|
||||
-#include <d3d11.h>
|
||||
-#include <dxgi.h>
|
||||
-#include <dxgi1_2.h>
|
||||
+#if defined(ANGLE_ENABLE_D3D9)
|
||||
+# include <d3d9.h>
|
||||
+#endif
|
||||
+#if defined(ANGLE_ENABLE_D3D11)
|
||||
+# include <d3d11.h>
|
||||
+# include <dxgi.h>
|
||||
+# include <dxgi1_2.h>
|
||||
+#endif
|
||||
#include <d3dcompiler.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
index 86be93f..3407353 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
@@ -11,14 +11,17 @@
|
||||
#include "libGLESv2/main.h"
|
||||
#include "libGLESv2/Program.h"
|
||||
#include "libGLESv2/renderer/Renderer.h"
|
||||
-#include "libGLESv2/renderer/d3d9/Renderer9.h"
|
||||
-#include "libGLESv2/renderer/d3d11/Renderer11.h"
|
||||
+#if defined(ANGLE_ENABLE_D3D9)
|
||||
+# include "libGLESv2/renderer/d3d9/Renderer9.h"
|
||||
+#endif
|
||||
+#if defined(ANGLE_ENABLE_D3D11)
|
||||
+# include "libGLESv2/renderer/d3d11/Renderer11.h"
|
||||
+#endif
|
||||
#include "libGLESv2/utilities.h"
|
||||
#include "third_party/trace_event/trace_event.h"
|
||||
|
||||
-#if !defined(ANGLE_ENABLE_D3D11)
|
||||
-// Enables use of the Direct3D 11 API for a default display, when available
|
||||
-#define ANGLE_ENABLE_D3D11 0
|
||||
+#ifndef D3DERR_OUTOFVIDEOMEMORY
|
||||
+#define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT(1, 0x876, 380)
|
||||
#endif
|
||||
|
||||
namespace rx
|
||||
@@ -177,7 +180,8 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
|
||||
rx::Renderer *renderer = NULL;
|
||||
EGLint status = EGL_BAD_ALLOC;
|
||||
|
||||
- if (ANGLE_ENABLE_D3D11 ||
|
||||
+#if defined(ANGLE_ENABLE_D3D11)
|
||||
+ if (displayId == EGL_DEFAULT_DISPLAY ||
|
||||
displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
|
||||
displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE)
|
||||
{
|
||||
@@ -200,7 +204,9 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
|
||||
// Failed to create a D3D11 renderer, try creating a D3D9 renderer
|
||||
delete renderer;
|
||||
}
|
||||
+#endif // ANGLE_ENABLE_D3D11
|
||||
|
||||
+#if defined(ANGLE_ENABLE_D3D9)
|
||||
bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE);
|
||||
renderer = new rx::Renderer9(display, hDc, softwareDevice);
|
||||
|
||||
@@ -213,6 +219,7 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
|
||||
{
|
||||
return renderer;
|
||||
}
|
||||
+#endif // ANGLE_ENABLE_D3D9
|
||||
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
From 0fede57f6fc052942b910995fdfa4cd76a32f586 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Tue, 18 Feb 2014 12:11:45 +0200
|
||||
Subject: [PATCH] ANGLE: Dynamically load D3D compiler from a list or the
|
||||
environment
|
||||
|
||||
If the default compiler cannot be found, load it from a list of DLL names,
|
||||
including a non-versioned proxy DLL provided by Qt. On Desktop Windows,
|
||||
the default compiler can also be specified by an environment variable,
|
||||
QT_D3DCOMPILER_DLL.
|
||||
|
||||
Change-Id: I0d7a8a8a36cc571836f8fa59ea14513b9b19c19b
|
||||
---
|
||||
.../angle/src/libGLESv2/renderer/Renderer.cpp | 34 ++++++++++++++++++++--
|
||||
1 file changed, 32 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
index e74120d..94cbc0e 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
|
||||
@@ -43,6 +43,10 @@ typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const
|
||||
|
||||
#endif // __MINGW32__
|
||||
|
||||
+#ifndef QT_D3DCOMPILER_DLL
|
||||
+#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL
|
||||
+#endif
|
||||
+
|
||||
namespace rx
|
||||
{
|
||||
|
||||
@@ -77,10 +81,36 @@ bool Renderer::initializeCompiler()
|
||||
}
|
||||
#endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
|
||||
|
||||
- if (!mD3dCompilerModule)
|
||||
+ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL
|
||||
+#if !defined(ANGLE_OS_WINRT)
|
||||
+ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL");
|
||||
+ if (!defaultCompiler)
|
||||
+ defaultCompiler = QT_D3DCOMPILER_DLL;
|
||||
+#else // !ANGLE_OS_WINRT
|
||||
+# ifdef _DEBUG
|
||||
+ const wchar_t *defaultCompiler = L"d3dcompiler_qtd.dll";
|
||||
+# else
|
||||
+ const wchar_t *defaultCompiler = L"d3dcompiler_qt.dll";
|
||||
+# endif
|
||||
+#endif // ANGLE_OS_WINRT
|
||||
+
|
||||
+ const wchar_t *compilerDlls[] = {
|
||||
+ defaultCompiler,
|
||||
+ L"d3dcompiler_47.dll",
|
||||
+ L"d3dcompiler_46.dll",
|
||||
+ L"d3dcompiler_45.dll",
|
||||
+ L"d3dcompiler_44.dll",
|
||||
+ L"d3dcompiler_43.dll",
|
||||
+ 0
|
||||
+ };
|
||||
+
|
||||
+ // Load the first available known compiler DLL
|
||||
+ for (int i = 0; compilerDlls[i]; ++i)
|
||||
{
|
||||
// Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with.
|
||||
- mD3dCompilerModule = LoadLibrary(D3DCOMPILER_DLL);
|
||||
+ mD3dCompilerModule = LoadLibrary(compilerDlls[i]);
|
||||
+ if (mD3dCompilerModule)
|
||||
+ break;
|
||||
}
|
||||
|
||||
if (!mD3dCompilerModule)
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,426 +0,0 @@
|
||||
From e84f947df4ae095eae600550749b3a4e8de5ee8b Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Thu, 20 Feb 2014 16:51:36 +0200
|
||||
Subject: [PATCH] ANGLE: Enable D3D11 for feature level 9 cards
|
||||
|
||||
Enable use of ANGLE on lower-end hardware, such as Surface RT and
|
||||
Windows Phone 8.
|
||||
|
||||
Based on https://codereview.appspot.com/12917046/
|
||||
|
||||
Change-Id: Ice536802e4eedc1d264abd0dd65960638fce59e4
|
||||
---
|
||||
.../angle/src/libGLESv2/renderer/d3d11/Image11.cpp | 7 +-
|
||||
.../libGLESv2/renderer/d3d11/RenderStateCache.cpp | 5 +-
|
||||
.../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 90 ++++++++++++++++++++--
|
||||
.../src/libGLESv2/renderer/d3d11/Renderer11.h | 1 +
|
||||
.../libGLESv2/renderer/d3d11/TextureStorage11.cpp | 10 +--
|
||||
.../libGLESv2/renderer/d3d11/renderer11_utils.cpp | 4 +-
|
||||
.../libGLESv2/renderer/d3d11/renderer11_utils.h | 2 +-
|
||||
7 files changed, 100 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
|
||||
index 2b07b9d..5d039a3 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
|
||||
@@ -142,7 +142,7 @@ bool Image11::redefine(Renderer *renderer, GLint internalformat, GLsizei width,
|
||||
mHeight = height;
|
||||
mInternalFormat = internalformat;
|
||||
// compute the d3d format that will be used
|
||||
- mDXGIFormat = gl_d3d11::ConvertTextureFormat(internalformat);
|
||||
+ mDXGIFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel());
|
||||
mActualFormat = d3d11_gl::ConvertTextureInternalFormat(mDXGIFormat);
|
||||
|
||||
if (mStagingTexture)
|
||||
@@ -191,7 +191,10 @@ void Image11::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heig
|
||||
switch (mInternalFormat)
|
||||
{
|
||||
case GL_ALPHA8_EXT:
|
||||
- loadAlphaDataToNative(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData);
|
||||
+ if (mRenderer->getFeatureLevel() >= D3D_FEATURE_LEVEL_10_0)
|
||||
+ loadAlphaDataToNative(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData);
|
||||
+ else
|
||||
+ loadAlphaDataToBGRA(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData);
|
||||
break;
|
||||
case GL_LUMINANCE8_EXT:
|
||||
loadLuminanceDataToNativeOrBGRA(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData, false);
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
|
||||
index 0047e04..a1c324c 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
|
||||
@@ -419,7 +419,8 @@ ID3D11SamplerState *RenderStateCache::getSamplerState(const gl::SamplerState &sa
|
||||
samplerDesc.BorderColor[2] = 0.0f;
|
||||
samplerDesc.BorderColor[3] = 0.0f;
|
||||
samplerDesc.MinLOD = gl_d3d11::ConvertMinLOD(samplerState.minFilter, samplerState.lodOffset);
|
||||
- samplerDesc.MaxLOD = gl_d3d11::ConvertMaxLOD(samplerState.minFilter, samplerState.lodOffset);
|
||||
+ samplerDesc.MaxLOD = mDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0
|
||||
+ ? gl_d3d11::ConvertMaxLOD(samplerState.minFilter, samplerState.lodOffset) : FLT_MAX;
|
||||
|
||||
ID3D11SamplerState *dx11SamplerState = NULL;
|
||||
HRESULT result = mDevice->CreateSamplerState(&samplerDesc, &dx11SamplerState);
|
||||
@@ -435,4 +436,4 @@ ID3D11SamplerState *RenderStateCache::getSamplerState(const gl::SamplerState &sa
|
||||
}
|
||||
}
|
||||
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
|
||||
index 7f166fd..31d976d 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
|
||||
@@ -164,6 +164,11 @@ EGLint Renderer11::initialize()
|
||||
D3D_FEATURE_LEVEL_11_0,
|
||||
D3D_FEATURE_LEVEL_10_1,
|
||||
D3D_FEATURE_LEVEL_10_0,
|
||||
+#if !defined(ANGLE_ENABLE_D3D9)
|
||||
+ D3D_FEATURE_LEVEL_9_3,
|
||||
+ D3D_FEATURE_LEVEL_9_2,
|
||||
+ D3D_FEATURE_LEVEL_9_1,
|
||||
+#endif
|
||||
};
|
||||
|
||||
HRESULT result = S_OK;
|
||||
@@ -1533,7 +1538,7 @@ void Renderer11::applyUniforms(gl::ProgramBinary *programBinary, gl::UniformArra
|
||||
}
|
||||
|
||||
// needed for the point sprite geometry shader
|
||||
- if (mCurrentGeometryConstantBuffer != mDriverConstantBufferPS)
|
||||
+ if (mFeatureLevel >= D3D_FEATURE_LEVEL_10_0 && mCurrentGeometryConstantBuffer != mDriverConstantBufferPS)
|
||||
{
|
||||
mDeviceContext->GSSetConstantBuffers(0, 1, &mDriverConstantBufferPS);
|
||||
mCurrentGeometryConstantBuffer = mDriverConstantBufferPS;
|
||||
@@ -1956,6 +1961,11 @@ bool Renderer11::testDeviceResettable()
|
||||
D3D_FEATURE_LEVEL_11_0,
|
||||
D3D_FEATURE_LEVEL_10_1,
|
||||
D3D_FEATURE_LEVEL_10_0,
|
||||
+#if !defined(ANGLE_ENABLE_D3D9)
|
||||
+ D3D_FEATURE_LEVEL_9_3,
|
||||
+ D3D_FEATURE_LEVEL_9_2,
|
||||
+ D3D_FEATURE_LEVEL_9_1,
|
||||
+#endif
|
||||
};
|
||||
|
||||
ID3D11Device* dummyDevice;
|
||||
@@ -2139,6 +2149,11 @@ float Renderer11::getTextureMaxAnisotropy() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return D3D10_MAX_MAXANISOTROPY;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ return 16;
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return D3D_FL9_1_DEFAULT_MAX_ANISOTROPY;
|
||||
default: UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
@@ -2158,6 +2173,11 @@ Range Renderer11::getViewportBounds() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return Range(D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX);
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ return Range(D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION * -2, D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION * 2);
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return Range(D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION * -2, D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION * 2);
|
||||
default: UNREACHABLE();
|
||||
return Range(0, 0);
|
||||
}
|
||||
@@ -2172,6 +2192,10 @@ unsigned int Renderer11::getMaxVertexTextureImageUnits() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return MAX_TEXTURE_IMAGE_UNITS_VTF_SM4;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return 0;
|
||||
default: UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
@@ -2195,14 +2219,14 @@ unsigned int Renderer11::getReservedFragmentUniformVectors() const
|
||||
unsigned int Renderer11::getMaxVertexUniformVectors() const
|
||||
{
|
||||
META_ASSERT(MAX_VERTEX_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT);
|
||||
- ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0);
|
||||
+ ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_9_1);
|
||||
return MAX_VERTEX_UNIFORM_VECTORS_D3D11;
|
||||
}
|
||||
|
||||
unsigned int Renderer11::getMaxFragmentUniformVectors() const
|
||||
{
|
||||
META_ASSERT(MAX_FRAGMENT_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT);
|
||||
- ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0);
|
||||
+ ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_9_1);
|
||||
return MAX_FRAGMENT_UNIFORM_VECTORS_D3D11;
|
||||
}
|
||||
|
||||
@@ -2216,6 +2240,10 @@ unsigned int Renderer11::getMaxVaryingVectors() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return D3D10_VS_OUTPUT_REGISTER_COUNT;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return 8;
|
||||
default: UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
@@ -2229,6 +2257,10 @@ bool Renderer11::getNonPower2TextureSupport() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return false;
|
||||
default: UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
@@ -2242,6 +2274,11 @@ bool Renderer11::getOcclusionQuerySupport() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return false;
|
||||
default: UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
@@ -2254,7 +2291,11 @@ bool Renderer11::getInstancingSupport() const
|
||||
case D3D_FEATURE_LEVEL_11_0:
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
- return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return false;
|
||||
default: UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
@@ -2276,6 +2317,11 @@ bool Renderer11::getDerivativeInstructionSupport() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ return true;
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return false;
|
||||
default: UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
@@ -2294,6 +2340,9 @@ int Renderer11::getMajorShaderModel() const
|
||||
case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MAJOR_VERSION; // 5
|
||||
case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MAJOR_VERSION; // 4
|
||||
case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MAJOR_VERSION; // 4
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MAJOR_VERSION; // 4 (level 9)
|
||||
default: UNREACHABLE(); return 0;
|
||||
}
|
||||
}
|
||||
@@ -2305,6 +2354,9 @@ int Renderer11::getMinorShaderModel() const
|
||||
case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MINOR_VERSION; // 0
|
||||
case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MINOR_VERSION; // 1
|
||||
case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MINOR_VERSION; // 0
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MINOR_VERSION; // 0 (level 9)
|
||||
default: UNREACHABLE(); return 0;
|
||||
}
|
||||
}
|
||||
@@ -2330,6 +2382,11 @@ int Renderer11::getMaxViewportDimension() const
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1:
|
||||
+ return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048
|
||||
default: UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
@@ -2342,6 +2399,9 @@ int Renderer11::getMaxTextureWidth() const
|
||||
case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 16384
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192
|
||||
+ case D3D_FEATURE_LEVEL_9_3: return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1: return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048
|
||||
default: UNREACHABLE(); return 0;
|
||||
}
|
||||
}
|
||||
@@ -2353,6 +2413,9 @@ int Renderer11::getMaxTextureHeight() const
|
||||
case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 16384
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192
|
||||
+ case D3D_FEATURE_LEVEL_9_3: return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1: return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048
|
||||
default: UNREACHABLE(); return 0;
|
||||
}
|
||||
}
|
||||
@@ -2364,6 +2427,9 @@ bool Renderer11::get32BitIndexSupport() const
|
||||
case D3D_FEATURE_LEVEL_11_0:
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP >= 32; // true
|
||||
+ case D3D_FEATURE_LEVEL_9_3:
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1: return false;
|
||||
default: UNREACHABLE(); return false;
|
||||
}
|
||||
}
|
||||
@@ -2410,6 +2476,8 @@ unsigned int Renderer11::getMaxRenderTargets() const
|
||||
{
|
||||
META_ASSERT(D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
|
||||
META_ASSERT(D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
|
||||
+ META_ASSERT(D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
|
||||
+ META_ASSERT(D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
|
||||
|
||||
switch (mFeatureLevel)
|
||||
{
|
||||
@@ -2417,6 +2485,9 @@ unsigned int Renderer11::getMaxRenderTargets() const
|
||||
return D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; // 8
|
||||
case D3D_FEATURE_LEVEL_10_1:
|
||||
case D3D_FEATURE_LEVEL_10_0:
|
||||
+ case D3D_FEATURE_LEVEL_9_3: // return D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT; // 4
|
||||
+ case D3D_FEATURE_LEVEL_9_2:
|
||||
+ case D3D_FEATURE_LEVEL_9_1: // return D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT; // 1
|
||||
// Feature level 10.0 and 10.1 cards perform very poorly when the pixel shader
|
||||
// outputs to multiple RTs that are not bound.
|
||||
// TODO: Remove pixel shader outputs for render targets that are not bound.
|
||||
@@ -2603,7 +2674,7 @@ bool Renderer11::copyTexture(ID3D11ShaderResourceView *source, const gl::Rectang
|
||||
samplerDesc.BorderColor[2] = 0.0f;
|
||||
samplerDesc.BorderColor[3] = 0.0f;
|
||||
samplerDesc.MinLOD = 0.0f;
|
||||
- samplerDesc.MaxLOD = 0.0f;
|
||||
+ samplerDesc.MaxLOD = mDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0 ? 0.0f : FLT_MAX;
|
||||
|
||||
result = mDevice->CreateSamplerState(&samplerDesc, &mCopySampler);
|
||||
ASSERT(SUCCEEDED(result));
|
||||
@@ -2848,7 +2919,7 @@ ShaderExecutable *Renderer11::loadExecutable(const void *function, size_t length
|
||||
|
||||
ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const char *shaderHLSL, rx::ShaderType type, D3DWorkaroundType workaround)
|
||||
{
|
||||
- const char *profile = NULL;
|
||||
+ std::string profile;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@@ -2866,7 +2937,12 @@ ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const ch
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- ID3DBlob *binary = (ID3DBlob*)compileToBinary(infoLog, shaderHLSL, profile, D3DCOMPILE_OPTIMIZATION_LEVEL0, false);
|
||||
+ if (mFeatureLevel == D3D_FEATURE_LEVEL_9_3)
|
||||
+ profile += "_level_9_3";
|
||||
+ else if (mFeatureLevel == D3D_FEATURE_LEVEL_9_2 || mFeatureLevel == D3D_FEATURE_LEVEL_9_1)
|
||||
+ profile += "_level_9_1";
|
||||
+
|
||||
+ ID3DBlob *binary = (ID3DBlob*)compileToBinary(infoLog, shaderHLSL, profile.c_str(), D3DCOMPILE_OPTIMIZATION_LEVEL0, false);
|
||||
if (!binary)
|
||||
return NULL;
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
|
||||
index ba3f0c6..a8a722c 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
|
||||
@@ -177,6 +177,7 @@ class Renderer11 : public Renderer
|
||||
ID3D11Device *getDevice() { return mDevice; }
|
||||
ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; };
|
||||
IDXGIFactory *getDxgiFactory() { return mDxgiFactory; };
|
||||
+ D3D_FEATURE_LEVEL getFeatureLevel() { return mFeatureLevel; }
|
||||
|
||||
bool getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource);
|
||||
void unapplyRenderTargets();
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
|
||||
index 5f6ea21..fdfbe52 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
|
||||
@@ -222,14 +222,14 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, SwapChain11 *swapch
|
||||
}
|
||||
|
||||
TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, GLsizei width, GLsizei height)
|
||||
- : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat), usage, forceRenderable))
|
||||
+ : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat, Renderer11::makeRenderer11(renderer)->getFeatureLevel()), usage, forceRenderable))
|
||||
{
|
||||
for (unsigned int i = 0; i < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
|
||||
{
|
||||
mRenderTarget[i] = NULL;
|
||||
}
|
||||
|
||||
- DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat);
|
||||
+ DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel());
|
||||
if (d3d11::IsDepthStencilFormat(convertedFormat))
|
||||
{
|
||||
mTextureFormat = d3d11::GetDepthTextureFormat(convertedFormat);
|
||||
@@ -331,7 +331,7 @@ RenderTarget *TextureStorage11_2D::getRenderTarget(int level)
|
||||
srvDesc.Format = mShaderResourceFormat;
|
||||
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
|
||||
srvDesc.Texture2D.MostDetailedMip = level;
|
||||
- srvDesc.Texture2D.MipLevels = 1;
|
||||
+ srvDesc.Texture2D.MipLevels = level ? 1 : -1;
|
||||
|
||||
ID3D11ShaderResourceView *srv;
|
||||
result = device->CreateShaderResourceView(mTexture, &srvDesc, &srv);
|
||||
@@ -440,7 +440,7 @@ void TextureStorage11_2D::generateMipmap(int level)
|
||||
}
|
||||
|
||||
TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, int size)
|
||||
- : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat), usage, forceRenderable))
|
||||
+ : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat, Renderer11::makeRenderer11(renderer)->getFeatureLevel()), usage, forceRenderable))
|
||||
{
|
||||
for (unsigned int i = 0; i < 6; i++)
|
||||
{
|
||||
@@ -450,7 +450,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int levels, GLe
|
||||
}
|
||||
}
|
||||
|
||||
- DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat);
|
||||
+ DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel());
|
||||
if (d3d11::IsDepthStencilFormat(convertedFormat))
|
||||
{
|
||||
mTextureFormat = d3d11::GetDepthTextureFormat(convertedFormat);
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
|
||||
index 6f06024..34b8259 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
|
||||
@@ -329,7 +329,7 @@ DXGI_FORMAT ConvertRenderbufferFormat(GLenum format)
|
||||
return DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
}
|
||||
|
||||
-DXGI_FORMAT ConvertTextureFormat(GLenum internalformat)
|
||||
+DXGI_FORMAT ConvertTextureFormat(GLenum internalformat, D3D_FEATURE_LEVEL featureLevel)
|
||||
{
|
||||
switch (internalformat)
|
||||
{
|
||||
@@ -342,7 +342,7 @@ DXGI_FORMAT ConvertTextureFormat(GLenum internalformat)
|
||||
case GL_LUMINANCE8_ALPHA8_EXT:
|
||||
return DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
case GL_ALPHA8_EXT:
|
||||
- return DXGI_FORMAT_A8_UNORM;
|
||||
+ return featureLevel >= D3D_FEATURE_LEVEL_10_0 ? DXGI_FORMAT_A8_UNORM : DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
|
||||
case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
|
||||
return DXGI_FORMAT_BC1_UNORM;
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
|
||||
index 1bc48c1..70ad4fe 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
|
||||
@@ -32,7 +32,7 @@ FLOAT ConvertMinLOD(GLenum minFilter, unsigned int lodOffset);
|
||||
FLOAT ConvertMaxLOD(GLenum minFilter, unsigned int lodOffset);
|
||||
|
||||
DXGI_FORMAT ConvertRenderbufferFormat(GLenum format);
|
||||
-DXGI_FORMAT ConvertTextureFormat(GLenum format);
|
||||
+DXGI_FORMAT ConvertTextureFormat(GLenum format, D3D_FEATURE_LEVEL featureLevel);
|
||||
}
|
||||
|
||||
namespace d3d11_gl
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
From 8ea24fcce69900f42299fd01772714a566f9111e Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Mon, 24 Feb 2014 11:08:23 +0200
|
||||
Subject: [PATCH] ANGLE: Fix compilation error on MinGW caused by trace_event.h
|
||||
|
||||
The event trace header in ANGLE's third_party directory has an unused
|
||||
template which causes a compilation error on MinGW. Disable this part
|
||||
of the code.
|
||||
|
||||
Change-Id: I167eac56507fafba34e3eb5ce6071d8f136a4e41
|
||||
---
|
||||
src/3rdparty/angle/src/third_party/trace_event/trace_event.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
|
||||
index 637cf9a..96ac910 100644
|
||||
--- a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
|
||||
+++ b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
|
||||
@@ -791,6 +791,7 @@ private:
|
||||
// TraceEventSamplingStateScope records the current sampling state
|
||||
// and sets a new sampling state. When the scope exists, it restores
|
||||
// the sampling state having recorded.
|
||||
+#if 0 // This is not used by ANGLE and causes a compilation error on MinGW
|
||||
template<size_t BucketNumber>
|
||||
class SamplingStateScope {
|
||||
public:
|
||||
@@ -818,6 +819,7 @@ public:
|
||||
private:
|
||||
const char* m_previousState;
|
||||
};
|
||||
+#endif
|
||||
|
||||
} // namespace TraceEvent
|
||||
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
From 15b694fa33cf76f93de62b8106972083f5fb3114 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Fri, 21 Feb 2014 13:34:21 +0200
|
||||
Subject: [PATCH] ANGLE: fix semantic index lookup
|
||||
|
||||
The sorted semantic index table was returning a direct mapping to the
|
||||
new indices, instead of the old indices. This caused a mismatch in the
|
||||
GL type lookup for the translated attribute.
|
||||
|
||||
Change-Id: I75d05ed707f56c45210e3dcbc277f894e3dc5a48
|
||||
---
|
||||
src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 2 +-
|
||||
src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
|
||||
index 41a83b6..13c515a 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
|
||||
@@ -2643,7 +2643,7 @@ void ProgramBinary::sortAttributesByLayout(rx::TranslatedAttribute attributes[MA
|
||||
for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++)
|
||||
{
|
||||
int oldIndex = mAttributesByLayout[i];
|
||||
- sortedSemanticIndices[i] = mSemanticIndex[oldIndex];
|
||||
+ sortedSemanticIndices[i] = oldIndex;
|
||||
attributes[i] = oldTranslatedAttributes[oldIndex];
|
||||
}
|
||||
}
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
|
||||
index 3418e89..4940b8c 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
|
||||
@@ -103,10 +103,10 @@ GLenum InputLayoutCache::applyVertexBuffers(TranslatedAttribute attributes[gl::M
|
||||
// Record the type of the associated vertex shader vector in our key
|
||||
// This will prevent mismatched vertex shaders from using the same input layout
|
||||
GLint attributeSize;
|
||||
- programBinary->getActiveAttribute(ilKey.elementCount, 0, NULL, &attributeSize, &ilKey.elements[ilKey.elementCount].glslElementType, NULL);
|
||||
+ programBinary->getActiveAttribute(sortedSemanticIndices[i], 0, NULL, &attributeSize, &ilKey.elements[ilKey.elementCount].glslElementType, NULL);
|
||||
|
||||
ilKey.elements[ilKey.elementCount].desc.SemanticName = semanticName;
|
||||
- ilKey.elements[ilKey.elementCount].desc.SemanticIndex = sortedSemanticIndices[i];
|
||||
+ ilKey.elements[ilKey.elementCount].desc.SemanticIndex = i;
|
||||
ilKey.elements[ilKey.elementCount].desc.Format = attributes[i].attribute->mArrayEnabled ? vertexBuffer->getDXGIFormat(*attributes[i].attribute) : DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
ilKey.elements[ilKey.elementCount].desc.InputSlot = i;
|
||||
ilKey.elements[ilKey.elementCount].desc.AlignedByteOffset = 0;
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
From 5eeb4a06f182b4fc0e3dcb82f47fcf4286890f94 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Fri, 21 Feb 2014 08:35:01 +0200
|
||||
Subject: [PATCH] ANGLE: Allow for universal program binaries
|
||||
|
||||
As a safety precaution, ANGLE writes the commit hash, optimization level,
|
||||
and adapter ID to its binary format. However, this hurts portability
|
||||
between systems by making shader pre-compilation/caching artificially
|
||||
system-specific.
|
||||
|
||||
The shader compiler doesn't take the target adapter into account, and the
|
||||
optimization level information discarded by ANGLE anyway. So, allow ANGLE
|
||||
to bypass these checks on systems where precompilation is required (i.e.
|
||||
WinRT). The default mechanism still applies unless
|
||||
ANGLE_ENABLE_UNIVERSAL_BINARY is passed as a define.
|
||||
|
||||
Change-Id: Iec6d833fd7010ed163978557238f00e7ac6ae416
|
||||
---
|
||||
src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
|
||||
index 8896665..41a83b6 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
|
||||
@@ -1637,6 +1637,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
|
||||
return false;
|
||||
}
|
||||
|
||||
+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
|
||||
unsigned char commitString[ANGLE_COMMIT_HASH_SIZE];
|
||||
stream.read(commitString, ANGLE_COMMIT_HASH_SIZE);
|
||||
if (memcmp(commitString, ANGLE_COMMIT_HASH, sizeof(unsigned char) * ANGLE_COMMIT_HASH_SIZE) != 0)
|
||||
@@ -1652,6 +1653,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
|
||||
infoLog.append("Mismatched compilation flags.");
|
||||
return false;
|
||||
}
|
||||
+#endif
|
||||
|
||||
for (int i = 0; i < MAX_VERTEX_ATTRIBS; ++i)
|
||||
{
|
||||
@@ -1742,6 +1744,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
|
||||
|
||||
const char *ptr = (const char*) binary + stream.offset();
|
||||
|
||||
+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
|
||||
const GUID *binaryIdentifier = (const GUID *) ptr;
|
||||
ptr += sizeof(GUID);
|
||||
|
||||
@@ -1751,6 +1754,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
|
||||
infoLog.append("Invalid program binary.");
|
||||
return false;
|
||||
}
|
||||
+#endif
|
||||
|
||||
const char *pixelShaderFunction = ptr;
|
||||
ptr += pixelShaderSize;
|
||||
@@ -1808,9 +1812,10 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length)
|
||||
stream.write(GL_PROGRAM_BINARY_ANGLE);
|
||||
stream.write(ANGLE_MAJOR_VERSION);
|
||||
stream.write(ANGLE_MINOR_VERSION);
|
||||
+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
|
||||
stream.write(ANGLE_COMMIT_HASH, ANGLE_COMMIT_HASH_SIZE);
|
||||
stream.write(ANGLE_COMPILE_OPTIMIZATION_LEVEL);
|
||||
-
|
||||
+#endif
|
||||
for (unsigned int i = 0; i < MAX_VERTEX_ATTRIBS; ++i)
|
||||
{
|
||||
stream.write(mLinkedAttribute[i].type);
|
||||
@@ -1866,7 +1871,9 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length)
|
||||
UINT geometryShaderSize = (mGeometryExecutable != NULL) ? mGeometryExecutable->getLength() : 0;
|
||||
stream.write(geometryShaderSize);
|
||||
|
||||
+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
|
||||
GUID identifier = mRenderer->getAdapterIdentifier();
|
||||
+#endif
|
||||
|
||||
GLsizei streamLength = stream.length();
|
||||
const void *streamData = stream.data();
|
||||
@@ -1889,8 +1896,10 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length)
|
||||
memcpy(ptr, streamData, streamLength);
|
||||
ptr += streamLength;
|
||||
|
||||
+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
|
||||
memcpy(ptr, &identifier, sizeof(GUID));
|
||||
ptr += sizeof(GUID);
|
||||
+#endif
|
||||
|
||||
memcpy(ptr, mPixelExecutable->getFunction(), pixelShaderSize);
|
||||
ptr += pixelShaderSize;
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,256 +0,0 @@
|
||||
From d7eb7ea643f00d47447d755b4a2125922d69a3b3 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Knight <andrew.knight@digia.com>
|
||||
Date: Thu, 20 Mar 2014 13:21:29 +0200
|
||||
Subject: [PATCH] ANGLE D3D11: Fix internal index buffer for level 9 hardware
|
||||
|
||||
Some level 9 hardware does not support 32-bit indices, and in most
|
||||
places this is already checked. It would appear that most phone
|
||||
hardware actually does support 32-bit indices, and so this bug wasn't
|
||||
caught until testing on the Surface RT. This is not surprising, as some
|
||||
level 9 resources are only a minimum for the hardware spec, not the
|
||||
true limit of the device/driver.
|
||||
|
||||
This patch provides the general fix to use 16-bit indices on such
|
||||
hardware, but a whitelist of known good GPUs should be added to enable
|
||||
32-bit indices where available.
|
||||
|
||||
Change-Id: I282ede5dd4a323037ade6c44b7cfac2c6445b491
|
||||
---
|
||||
.../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 169 ++++++++++++---------
|
||||
1 file changed, 94 insertions(+), 75 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
|
||||
index 31d976d..2de477b 100644
|
||||
--- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
|
||||
+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
|
||||
@@ -1137,6 +1137,84 @@ void Renderer11::drawElements(GLenum mode, GLsizei count, GLenum type, const GLv
|
||||
}
|
||||
}
|
||||
|
||||
+template<typename T>
|
||||
+static void fillLineLoopIndices(GLenum type, GLsizei count, const GLvoid *indices, T *data)
|
||||
+{
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case GL_NONE: // Non-indexed draw
|
||||
+ for (int i = 0; i < count; i++)
|
||||
+ {
|
||||
+ data[i] = i;
|
||||
+ }
|
||||
+ data[count] = 0;
|
||||
+ break;
|
||||
+ case GL_UNSIGNED_BYTE:
|
||||
+ for (int i = 0; i < count; i++)
|
||||
+ {
|
||||
+ data[i] = static_cast<const GLubyte*>(indices)[i];
|
||||
+ }
|
||||
+ data[count] = static_cast<const GLubyte*>(indices)[0];
|
||||
+ break;
|
||||
+ case GL_UNSIGNED_SHORT:
|
||||
+ for (int i = 0; i < count; i++)
|
||||
+ {
|
||||
+ data[i] = static_cast<const GLushort*>(indices)[i];
|
||||
+ }
|
||||
+ data[count] = static_cast<const GLushort*>(indices)[0];
|
||||
+ break;
|
||||
+ case GL_UNSIGNED_INT:
|
||||
+ for (int i = 0; i < count; i++)
|
||||
+ {
|
||||
+ data[i] = static_cast<const GLuint*>(indices)[i];
|
||||
+ }
|
||||
+ data[count] = static_cast<const GLuint*>(indices)[0];
|
||||
+ break;
|
||||
+ default: UNREACHABLE();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+template<typename T>
|
||||
+static void fillTriangleFanIndices(GLenum type, unsigned int numTris, const GLvoid *indices, T *data)
|
||||
+{
|
||||
+ switch (type)
|
||||
+ {
|
||||
+ case GL_NONE: // Non-indexed draw
|
||||
+ for (unsigned int i = 0; i < numTris; i++)
|
||||
+ {
|
||||
+ data[i*3 + 0] = 0;
|
||||
+ data[i*3 + 1] = i + 1;
|
||||
+ data[i*3 + 2] = i + 2;
|
||||
+ }
|
||||
+ break;
|
||||
+ case GL_UNSIGNED_BYTE:
|
||||
+ for (unsigned int i = 0; i < numTris; i++)
|
||||
+ {
|
||||
+ data[i*3 + 0] = static_cast<const GLubyte*>(indices)[0];
|
||||
+ data[i*3 + 1] = static_cast<const GLubyte*>(indices)[i + 1];
|
||||
+ data[i*3 + 2] = static_cast<const GLubyte*>(indices)[i + 2];
|
||||
+ }
|
||||
+ break;
|
||||
+ case GL_UNSIGNED_SHORT:
|
||||
+ for (unsigned int i = 0; i < numTris; i++)
|
||||
+ {
|
||||
+ data[i*3 + 0] = static_cast<const GLushort*>(indices)[0];
|
||||
+ data[i*3 + 1] = static_cast<const GLushort*>(indices)[i + 1];
|
||||
+ data[i*3 + 2] = static_cast<const GLushort*>(indices)[i + 2];
|
||||
+ }
|
||||
+ break;
|
||||
+ case GL_UNSIGNED_INT:
|
||||
+ for (unsigned int i = 0; i < numTris; i++)
|
||||
+ {
|
||||
+ data[i*3 + 0] = static_cast<const GLuint*>(indices)[0];
|
||||
+ data[i*3 + 1] = static_cast<const GLuint*>(indices)[i + 1];
|
||||
+ data[i*3 + 2] = static_cast<const GLuint*>(indices)[i + 2];
|
||||
+ }
|
||||
+ break;
|
||||
+ default: UNREACHABLE();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, int minIndex, gl::Buffer *elementArrayBuffer)
|
||||
{
|
||||
// Get the raw indices for an indexed draw
|
||||
@@ -1148,10 +1226,12 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices,
|
||||
indices = static_cast<const GLubyte*>(storage->getData()) + offset;
|
||||
}
|
||||
|
||||
+ const int indexType = get32BitIndexSupport() ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT;
|
||||
+
|
||||
if (!mLineLoopIB)
|
||||
{
|
||||
mLineLoopIB = new StreamingIndexBufferInterface(this);
|
||||
- if (!mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT))
|
||||
+ if (!mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType))
|
||||
{
|
||||
delete mLineLoopIB;
|
||||
mLineLoopIB = NULL;
|
||||
@@ -1171,7 +1251,7 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices,
|
||||
}
|
||||
|
||||
const unsigned int spaceNeeded = (static_cast<unsigned int>(count) + 1) * sizeof(unsigned int);
|
||||
- if (!mLineLoopIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT))
|
||||
+ if (!mLineLoopIB->reserveBufferSpace(spaceNeeded, indexType))
|
||||
{
|
||||
ERR("Could not reserve enough space in looping index buffer for GL_LINE_LOOP.");
|
||||
return gl::error(GL_OUT_OF_MEMORY);
|
||||
@@ -1185,42 +1265,12 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices,
|
||||
return gl::error(GL_OUT_OF_MEMORY);
|
||||
}
|
||||
|
||||
- unsigned int *data = reinterpret_cast<unsigned int*>(mappedMemory);
|
||||
+ if (indexType == GL_UNSIGNED_SHORT)
|
||||
+ fillLineLoopIndices(type, count, indices, reinterpret_cast<unsigned short*>(mappedMemory));
|
||||
+ else
|
||||
+ fillLineLoopIndices(type, count, indices, reinterpret_cast<unsigned int*>(mappedMemory));
|
||||
unsigned int indexBufferOffset = offset;
|
||||
|
||||
- switch (type)
|
||||
- {
|
||||
- case GL_NONE: // Non-indexed draw
|
||||
- for (int i = 0; i < count; i++)
|
||||
- {
|
||||
- data[i] = i;
|
||||
- }
|
||||
- data[count] = 0;
|
||||
- break;
|
||||
- case GL_UNSIGNED_BYTE:
|
||||
- for (int i = 0; i < count; i++)
|
||||
- {
|
||||
- data[i] = static_cast<const GLubyte*>(indices)[i];
|
||||
- }
|
||||
- data[count] = static_cast<const GLubyte*>(indices)[0];
|
||||
- break;
|
||||
- case GL_UNSIGNED_SHORT:
|
||||
- for (int i = 0; i < count; i++)
|
||||
- {
|
||||
- data[i] = static_cast<const GLushort*>(indices)[i];
|
||||
- }
|
||||
- data[count] = static_cast<const GLushort*>(indices)[0];
|
||||
- break;
|
||||
- case GL_UNSIGNED_INT:
|
||||
- for (int i = 0; i < count; i++)
|
||||
- {
|
||||
- data[i] = static_cast<const GLuint*>(indices)[i];
|
||||
- }
|
||||
- data[count] = static_cast<const GLuint*>(indices)[0];
|
||||
- break;
|
||||
- default: UNREACHABLE();
|
||||
- }
|
||||
-
|
||||
if (!mLineLoopIB->unmapBuffer())
|
||||
{
|
||||
ERR("Could not unmap index buffer for GL_LINE_LOOP.");
|
||||
@@ -1251,10 +1301,12 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic
|
||||
indices = static_cast<const GLubyte*>(storage->getData()) + offset;
|
||||
}
|
||||
|
||||
+ const int indexType = get32BitIndexSupport() ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT;
|
||||
+
|
||||
if (!mTriangleFanIB)
|
||||
{
|
||||
mTriangleFanIB = new StreamingIndexBufferInterface(this);
|
||||
- if (!mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT))
|
||||
+ if (!mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType))
|
||||
{
|
||||
delete mTriangleFanIB;
|
||||
mTriangleFanIB = NULL;
|
||||
@@ -1276,7 +1328,7 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic
|
||||
}
|
||||
|
||||
const unsigned int spaceNeeded = (numTris * 3) * sizeof(unsigned int);
|
||||
- if (!mTriangleFanIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT))
|
||||
+ if (!mTriangleFanIB->reserveBufferSpace(spaceNeeded, indexType))
|
||||
{
|
||||
ERR("Could not reserve enough space in scratch index buffer for GL_TRIANGLE_FAN.");
|
||||
return gl::error(GL_OUT_OF_MEMORY);
|
||||
@@ -1290,45 +1342,12 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic
|
||||
return gl::error(GL_OUT_OF_MEMORY);
|
||||
}
|
||||
|
||||
- unsigned int *data = reinterpret_cast<unsigned int*>(mappedMemory);
|
||||
+ if (indexType == GL_UNSIGNED_SHORT)
|
||||
+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast<unsigned short*>(mappedMemory));
|
||||
+ else
|
||||
+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast<unsigned int*>(mappedMemory));
|
||||
unsigned int indexBufferOffset = offset;
|
||||
|
||||
- switch (type)
|
||||
- {
|
||||
- case GL_NONE: // Non-indexed draw
|
||||
- for (unsigned int i = 0; i < numTris; i++)
|
||||
- {
|
||||
- data[i*3 + 0] = 0;
|
||||
- data[i*3 + 1] = i + 1;
|
||||
- data[i*3 + 2] = i + 2;
|
||||
- }
|
||||
- break;
|
||||
- case GL_UNSIGNED_BYTE:
|
||||
- for (unsigned int i = 0; i < numTris; i++)
|
||||
- {
|
||||
- data[i*3 + 0] = static_cast<const GLubyte*>(indices)[0];
|
||||
- data[i*3 + 1] = static_cast<const GLubyte*>(indices)[i + 1];
|
||||
- data[i*3 + 2] = static_cast<const GLubyte*>(indices)[i + 2];
|
||||
- }
|
||||
- break;
|
||||
- case GL_UNSIGNED_SHORT:
|
||||
- for (unsigned int i = 0; i < numTris; i++)
|
||||
- {
|
||||
- data[i*3 + 0] = static_cast<const GLushort*>(indices)[0];
|
||||
- data[i*3 + 1] = static_cast<const GLushort*>(indices)[i + 1];
|
||||
- data[i*3 + 2] = static_cast<const GLushort*>(indices)[i + 2];
|
||||
- }
|
||||
- break;
|
||||
- case GL_UNSIGNED_INT:
|
||||
- for (unsigned int i = 0; i < numTris; i++)
|
||||
- {
|
||||
- data[i*3 + 0] = static_cast<const GLuint*>(indices)[0];
|
||||
- data[i*3 + 1] = static_cast<const GLuint*>(indices)[i + 1];
|
||||
- data[i*3 + 2] = static_cast<const GLuint*>(indices)[i + 2];
|
||||
- }
|
||||
- break;
|
||||
- default: UNREACHABLE();
|
||||
- }
|
||||
|
||||
if (!mTriangleFanIB->unmapBuffer())
|
||||
{
|
||||
--
|
||||
1.8.4.msysgit.0
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From b4275810a50e298b4d8b038f6842a56ee7711471 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Fri, 7 Feb 2014 12:58:41 +0000
|
||||
Subject: [PATCH 1/2] Untangle OS from GENERATOR a bit for MSYS2
|
||||
|
||||
---
|
||||
build/common.gypi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/build/common.gypi b/build/common.gypi
|
||||
index b0a497f..db85e04 100644
|
||||
--- a/build/common.gypi
|
||||
+++ b/build/common.gypi
|
||||
@@ -228,7 +228,7 @@
|
||||
},
|
||||
'conditions':
|
||||
[
|
||||
- [ 'OS == "win" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"',
|
||||
+ [ 'OS == "win" and GENERATOR == "msvs" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"',
|
||||
{
|
||||
'Debug_x64':
|
||||
{
|
||||
--
|
||||
1.8.5.3
|
||||
|
||||
@@ -1,237 +0,0 @@
|
||||
From 873f5103485641cda5bff523edcd417e28840532 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Donnelly <mingw.android@gmail.com>
|
||||
Date: Fri, 7 Feb 2014 17:15:51 +0000
|
||||
Subject: [PATCH 2/2] Move event_tracer{.cpp,.h} to libGLESv2 instead of common
|
||||
|
||||
---
|
||||
src/common/event_tracer.cpp | 49 -------------------------------
|
||||
src/common/event_tracer.h | 41 --------------------------
|
||||
src/libGLESv2/event_tracer.cpp | 49 +++++++++++++++++++++++++++++++
|
||||
src/libGLESv2/event_tracer.h | 41 ++++++++++++++++++++++++++
|
||||
src/third_party/trace_event/trace_event.h | 2 +-
|
||||
5 files changed, 91 insertions(+), 91 deletions(-)
|
||||
delete mode 100644 src/common/event_tracer.cpp
|
||||
delete mode 100644 src/common/event_tracer.h
|
||||
create mode 100644 src/libGLESv2/event_tracer.cpp
|
||||
create mode 100644 src/libGLESv2/event_tracer.h
|
||||
|
||||
diff --git a/src/common/event_tracer.cpp b/src/common/event_tracer.cpp
|
||||
deleted file mode 100644
|
||||
index 142373d..0000000
|
||||
--- a/src/common/event_tracer.cpp
|
||||
+++ /dev/null
|
||||
@@ -1,49 +0,0 @@
|
||||
-// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
|
||||
-// Use of this source code is governed by a BSD-style license that can be
|
||||
-// found in the LICENSE file.
|
||||
-
|
||||
-#include "common/event_tracer.h"
|
||||
-
|
||||
-namespace gl
|
||||
-{
|
||||
-
|
||||
-GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
|
||||
-AddTraceEventFunc g_addTraceEvent;
|
||||
-
|
||||
-} // namespace gl
|
||||
-
|
||||
-extern "C" {
|
||||
-
|
||||
-void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag,
|
||||
- AddTraceEventFunc addTraceEvent)
|
||||
-{
|
||||
- gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag;
|
||||
- gl::g_addTraceEvent = addTraceEvent;
|
||||
-}
|
||||
-
|
||||
-} // extern "C"
|
||||
-
|
||||
-namespace gl
|
||||
-{
|
||||
-
|
||||
-const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name)
|
||||
-{
|
||||
- if (g_getCategoryEnabledFlag)
|
||||
- {
|
||||
- return g_getCategoryEnabledFlag(name);
|
||||
- }
|
||||
- static unsigned char disabled = 0;
|
||||
- return &disabled;
|
||||
-}
|
||||
-
|
||||
-void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
- int numArgs, const char** argNames, const unsigned char* argTypes,
|
||||
- const unsigned long long* argValues, unsigned char flags)
|
||||
-{
|
||||
- if (g_addTraceEvent)
|
||||
- {
|
||||
- g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-} // namespace gl
|
||||
diff --git a/src/common/event_tracer.h b/src/common/event_tracer.h
|
||||
deleted file mode 100644
|
||||
index 14b7b29..0000000
|
||||
--- a/src/common/event_tracer.h
|
||||
+++ /dev/null
|
||||
@@ -1,41 +0,0 @@
|
||||
-// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
|
||||
-// Use of this source code is governed by a BSD-style license that can be
|
||||
-// found in the LICENSE file.
|
||||
-
|
||||
-#ifndef COMMON_EVENT_TRACER_H_
|
||||
-#define COMMON_EVENT_TRACER_H_
|
||||
-
|
||||
-#if !defined(TRACE_ENTRY)
|
||||
-#if defined(_WIN32)
|
||||
-#define TRACE_ENTRY __stdcall
|
||||
-#else
|
||||
-#define TRACE_ENTRY
|
||||
-#endif // // _WIN32
|
||||
-#endif //TRACE_ENTRY
|
||||
-
|
||||
-extern "C" {
|
||||
-
|
||||
-typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name);
|
||||
-typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name,
|
||||
- unsigned long long id, int numArgs, const char** argNames,
|
||||
- const unsigned char* argTypes, const unsigned long long* argValues,
|
||||
- unsigned char flags);
|
||||
-
|
||||
-// extern "C" so that it has a reasonable name for GetProcAddress.
|
||||
-void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc get_category_enabled_flag,
|
||||
- AddTraceEventFunc add_trace_event_func);
|
||||
-
|
||||
-}
|
||||
-
|
||||
-namespace gl
|
||||
-{
|
||||
-
|
||||
-const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name);
|
||||
-
|
||||
-void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
- int numArgs, const char** argNames, const unsigned char* argTypes,
|
||||
- const unsigned long long* argValues, unsigned char flags);
|
||||
-
|
||||
-}
|
||||
-
|
||||
-#endif // COMMON_EVENT_TRACER_H_
|
||||
diff --git a/src/libGLESv2/event_tracer.cpp b/src/libGLESv2/event_tracer.cpp
|
||||
new file mode 100644
|
||||
index 0000000..b38e7c3
|
||||
--- /dev/null
|
||||
+++ b/src/libGLESv2/event_tracer.cpp
|
||||
@@ -0,0 +1,49 @@
|
||||
+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#include "event_tracer.h"
|
||||
+
|
||||
+namespace gl
|
||||
+{
|
||||
+
|
||||
+GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
|
||||
+AddTraceEventFunc g_addTraceEvent;
|
||||
+
|
||||
+} // namespace gl
|
||||
+
|
||||
+extern "C" {
|
||||
+
|
||||
+void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag,
|
||||
+ AddTraceEventFunc addTraceEvent)
|
||||
+{
|
||||
+ gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag;
|
||||
+ gl::g_addTraceEvent = addTraceEvent;
|
||||
+}
|
||||
+
|
||||
+} // extern "C"
|
||||
+
|
||||
+namespace gl
|
||||
+{
|
||||
+
|
||||
+const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name)
|
||||
+{
|
||||
+ if (g_getCategoryEnabledFlag)
|
||||
+ {
|
||||
+ return g_getCategoryEnabledFlag(name);
|
||||
+ }
|
||||
+ static unsigned char disabled = 0;
|
||||
+ return &disabled;
|
||||
+}
|
||||
+
|
||||
+void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
+ int numArgs, const char** argNames, const unsigned char* argTypes,
|
||||
+ const unsigned long long* argValues, unsigned char flags)
|
||||
+{
|
||||
+ if (g_addTraceEvent)
|
||||
+ {
|
||||
+ g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+} // namespace gl
|
||||
diff --git a/src/libGLESv2/event_tracer.h b/src/libGLESv2/event_tracer.h
|
||||
new file mode 100644
|
||||
index 0000000..14b7b29
|
||||
--- /dev/null
|
||||
+++ b/src/libGLESv2/event_tracer.h
|
||||
@@ -0,0 +1,41 @@
|
||||
+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#ifndef COMMON_EVENT_TRACER_H_
|
||||
+#define COMMON_EVENT_TRACER_H_
|
||||
+
|
||||
+#if !defined(TRACE_ENTRY)
|
||||
+#if defined(_WIN32)
|
||||
+#define TRACE_ENTRY __stdcall
|
||||
+#else
|
||||
+#define TRACE_ENTRY
|
||||
+#endif // // _WIN32
|
||||
+#endif //TRACE_ENTRY
|
||||
+
|
||||
+extern "C" {
|
||||
+
|
||||
+typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name);
|
||||
+typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name,
|
||||
+ unsigned long long id, int numArgs, const char** argNames,
|
||||
+ const unsigned char* argTypes, const unsigned long long* argValues,
|
||||
+ unsigned char flags);
|
||||
+
|
||||
+// extern "C" so that it has a reasonable name for GetProcAddress.
|
||||
+void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc get_category_enabled_flag,
|
||||
+ AddTraceEventFunc add_trace_event_func);
|
||||
+
|
||||
+}
|
||||
+
|
||||
+namespace gl
|
||||
+{
|
||||
+
|
||||
+const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name);
|
||||
+
|
||||
+void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
+ int numArgs, const char** argNames, const unsigned char* argTypes,
|
||||
+ const unsigned long long* argValues, unsigned char flags);
|
||||
+
|
||||
+}
|
||||
+
|
||||
+#endif // COMMON_EVENT_TRACER_H_
|
||||
diff --git a/src/third_party/trace_event/trace_event.h b/src/third_party/trace_event/trace_event.h
|
||||
index 1880056..ebd5a1e 100644
|
||||
--- a/src/third_party/trace_event/trace_event.h
|
||||
+++ b/src/third_party/trace_event/trace_event.h
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
-#include "common/event_tracer.h"
|
||||
+#include "libGLESv2/event_tracer.h"
|
||||
|
||||
// By default, const char* argument values are assumed to have long-lived scope
|
||||
// and will not be copied. Use this macro to force a const char* to be copied.
|
||||
--
|
||||
1.8.5.3
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -2,125 +2,70 @@
|
||||
# Contributor: Ray Donnelly <mingw.android@gmail.com>
|
||||
|
||||
_realname=angleproject
|
||||
pkgabse=mingw-w64-${_realname}-git
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
|
||||
pkgver=1.3.r2070
|
||||
pkgver=2.1.r5408
|
||||
pkgrel=1
|
||||
pkgdesc='Angle project built from git source (mingw-w64)'
|
||||
arch=('any')
|
||||
url='http://code.google.com/p/angleproject/'
|
||||
license=('LGPLv2+')
|
||||
groups=('mingw-w64')
|
||||
depends=()
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" 'gyp-svn' 'git')
|
||||
provides=("${MINGW_PACKAGE_PREFIX}-angleproject")
|
||||
conflicts=("${MINGW_PACKAGE_PREFIX}-angleproject")
|
||||
options=('!strip' 'staticlibs')
|
||||
source=('angleproject::git+https://chromium.googlesource.com/angle/angle'
|
||||
D3DCompiler_43-i686.dll
|
||||
D3DCompiler_43-x86_64.dll
|
||||
'angleproject-include-import-library-and-use-def-file.patch'
|
||||
'angleproject-fix-mingw-compatibility.patch'
|
||||
'angleproject-export-shader-symbols.patch'
|
||||
'angleproject-fix-trace_event.patch'
|
||||
'angleproject-fix-renderer9-stencilformat.patch'
|
||||
'0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch'
|
||||
'0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch'
|
||||
0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
|
||||
0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
|
||||
0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
|
||||
0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch
|
||||
0005-Fix-build-when-SSE2-is-not-available.patch
|
||||
0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
|
||||
0007-Make-DX9-DX11-mutually-exclusive.patch
|
||||
0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
|
||||
0009-ANGLE-Support-WinRT.patch
|
||||
0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch
|
||||
0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
|
||||
0012-ANGLE-fix-semantic-index-lookup.patch
|
||||
0013-ANGLE-Allow-for-universal-program-binaries.patch
|
||||
0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch)
|
||||
source=("angleproject"::git+https://chromium.googlesource.com/angle/angle
|
||||
0000-build-fix.patch
|
||||
angleproject-export-shader-symbols.patch
|
||||
angleproject-include-import-library-and-use-def-file.patch
|
||||
libEGL_mingw32.def
|
||||
libGLESv2_mingw32.def)
|
||||
md5sums=('SKIP'
|
||||
'1c9b45e87528b8bb8cfa884ea0099a85'
|
||||
'ada0c39d4eacdc81fd84163a95d62079'
|
||||
'4bf401fa460cc60802106fa6646b10df'
|
||||
'10b197b483a543fcf7e1ae5ec379848f'
|
||||
'be79402d4cf03e26f467d9f738823d3a'
|
||||
'59a3d60f5b1b6676056444db8a7883fe'
|
||||
'5f30f3a3c668e4a76920a71e0dddc87d'
|
||||
'd680608c3826af8ed61292ed693a6776'
|
||||
'992b68a3e691467e8f067d2a01cc5e8a'
|
||||
'c690dcdc1940cdba4a10f5509bbdbde5'
|
||||
'743518f9c30ce102bf9db07ff4b04c5b'
|
||||
'a9a3412a013f792a170181a370807ce0'
|
||||
'53b6de972d6827dced411ced3a748980'
|
||||
'701479de7b6c9e5e6261d795d989996d'
|
||||
'671f29fa7abd9eadd2bcc8d7e0e34b5d'
|
||||
'b49eb1e053587dd356a67c8c7318ef1e'
|
||||
'b08b19bb0a562cb16442412d5d664277'
|
||||
'45cc38b7271bfed011dd40999dd8d12b'
|
||||
'8d80596af43f645be9d5114435c4706e'
|
||||
'4d7b3d22a71973b2dd552367ffb483b0'
|
||||
'e103408c432bde88659b8f4618db32d1'
|
||||
'357849298a8b1ebfa73a9fa6648a12b5'
|
||||
'5faf59851fda5052282dbaf34602f778')
|
||||
'3caf19560f2b8cac70f4a27b23093775'
|
||||
'70615a5e327a53fd60cc4dec916842c0'
|
||||
'2ca332d9c13bae82300d417595e1d48d'
|
||||
'232a2f50c3b55247f95fecfab1bec60e'
|
||||
'f5519fd7fc7f654c0805fbd802a5722d')
|
||||
pkgver() {
|
||||
cd "$srcdir/angleproject"
|
||||
local _major=$(head -n 4 src/common/version.h | grep 'ANGLE_MAJOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
|
||||
local _minor=$(head -n 4 src/common/version.h | grep 'ANGLE_MINOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
|
||||
local _major=$(head -n 14 src/common/version.h | grep 'ANGLE_MAJOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
|
||||
local _minor=$(head -n 14 src/common/version.h | grep 'ANGLE_MINOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
|
||||
printf "%s.%s.r%s" "$_major" "$_minor" "$(git rev-list --count HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}"/${_realname}
|
||||
|
||||
cp ${srcdir}/libEGL_mingw32.def src/libEGL/
|
||||
cp ${srcdir}/libGLESv2_mingw32.def src/libGLESv2/
|
||||
|
||||
### Fedora team patches ###
|
||||
patch -p1 -i ${srcdir}/0000-build-fix.patch
|
||||
|
||||
# Make sure an import library is created and the correct .def file is used during the build
|
||||
patch -p1 -i ${srcdir}/angleproject-include-import-library-and-use-def-file.patch
|
||||
|
||||
# WebKit depends on symbols which are used in the static library called translator_hlsl
|
||||
# This static library is linked into the libGLESv2 shared library
|
||||
# To allow building WebKit export the required symbols in the libGLESv2 shared library
|
||||
patch -p1 -i ${srcdir}/angleproject-export-shader-symbols.patch
|
||||
|
||||
#echo "" > src/copy_compiler_dll.bat
|
||||
#chmod +x src/copy_compiler_dll.bat
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}"/angleproject
|
||||
|
||||
export PYTHON=/usr/bin/python2
|
||||
# Make sure an import library is created and the correct .def file is used during the build
|
||||
patch -p0 -i "${srcdir}"/angleproject-include-import-library-and-use-def-file.patch
|
||||
|
||||
# .def pieces taken from http://qt.gitorious.org/qt/qtbase/commit/b2c44985e740d0a0ea86b7b9f4cc849258ac2340
|
||||
patch -p0 -i "${srcdir}"/angleproject-fix-mingw-compatibility.patch
|
||||
#export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
|
||||
#export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
|
||||
|
||||
# WebKit depends on symbols which are used in the static library called translator
|
||||
# This static library is linked into the libGLESv2 shared library
|
||||
# To allow building WebKit export the required symbols in the libGLESv2 shared library
|
||||
patch -p0 -i "${srcdir}"/angleproject-export-shader-symbols.patch
|
||||
|
||||
# Fix missing methods in trace_event.h
|
||||
patch -p0 -i "${srcdir}"/angleproject-fix-trace_event.patch
|
||||
|
||||
# Fix stencil format method in renderer9_utils.cpp
|
||||
patch -p0 -i "${srcdir}"/angleproject-fix-renderer9-stencilformat.patch
|
||||
|
||||
# Untangle OS and GENERATOR some.
|
||||
patch -p1 -i "${srcdir}"/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch
|
||||
|
||||
# Fix multiply defined 'SetTraceFunctionPointers'
|
||||
patch -p1 -i "${srcdir}"/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch
|
||||
|
||||
# Patches from Qt5
|
||||
patch -p4 -i "${srcdir}"/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
|
||||
patch -p4 -i "${srcdir}"/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
|
||||
#patch -p4 -i "${srcdir}"/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
|
||||
#patch -p4 -i "${srcdir}"/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch
|
||||
patch -p4 -i "${srcdir}"/0005-Fix-build-when-SSE2-is-not-available.patch
|
||||
#patch -p4 -i "${srcdir}"/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
|
||||
#patch -p4 -i "${srcdir}"/0007-Make-DX9-DX11-mutually-exclusive.patch
|
||||
#patch -p4 -i "${srcdir}"/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
|
||||
#patch -p4 -i "${srcdir}"/0009-ANGLE-Support-WinRT.patch
|
||||
patch -p4 -i "${srcdir}"/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch
|
||||
#patch -p4 -i "${srcdir}"/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
|
||||
patch -p4 -i "${srcdir}"/0012-ANGLE-fix-semantic-index-lookup.patch
|
||||
#patch -p4 -i "${srcdir}"/0013-ANGLE-Allow-for-universal-program-binaries.patch
|
||||
#patch -p4 -i "${srcdir}"/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch
|
||||
|
||||
export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
|
||||
export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
|
||||
|
||||
sed -i -e 's_python _python2 _g' -e 's_"python"_"python2"_g' -e "s_'python'_'python2'_g" -e 's_/usr/bin/python_/usr/bin/python2_g' $(find -type f)
|
||||
sed -i -e 's|vsprintf_s|vsprintf|g' $(find . \( -name '*.h' -or -name '*.cpp' \) -and -type f)
|
||||
|
||||
mkdir -p build-${MINGW_CHOST} && pushd build-${MINGW_CHOST}
|
||||
|
||||
if [ "${MINGW_CHOST}" = "i686-w64-mingw32" ]
|
||||
then
|
||||
_target="win32"
|
||||
@@ -128,55 +73,65 @@ build() {
|
||||
_target="win64"
|
||||
fi
|
||||
|
||||
gyp -D OS=win --format make -D TARGET=$_target --depth . -I ../build/common.gypi ../src/build_angle.gyp
|
||||
gyp -D OS=win -D MSVS_VERSION="" -D TARGET=${_target} --format make --depth . -I build/common.gypi src/angle.gyp
|
||||
|
||||
# Fix linking of libtranslator.a
|
||||
sed -i \
|
||||
-e s@'$(obj).target/$(TARGET)/../src/common/event_tracer.o'@@g \
|
||||
-e s@'$(obj).target/$(TARGET)/../src/common/RefCountObject.o'@@g \
|
||||
-e s@'$(obj).target/$(TARGET)/../src/common/debug.o'@@g \
|
||||
"${srcdir}"/angleproject/src/translator{,_static}.target.mk
|
||||
# Make sure the correct libraries are linked in
|
||||
#sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk
|
||||
#sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -L. -lGLESv2'@ ../src/libEGL.target.mk
|
||||
|
||||
# LINK=g++ is to prevent using flock to serialize linking.
|
||||
LINK=g++ make -j1 V=1 CXXFLAGS="-std=c++11 -msse2 -DUNICODE -D_UNICODE"
|
||||
|
||||
${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \
|
||||
out/Debug/obj.target/libGLESv2/../src/common/*.o \
|
||||
out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/*.o \
|
||||
out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d9/*.o \
|
||||
out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d11/*.o \
|
||||
out/Debug/obj.target/libGLESv2/../src/libGLESv2/*.o \
|
||||
#out/Debug/obj.target/../src/libtranslator.a \
|
||||
#out/Debug/obj.target/../src/libpreprocessor.a
|
||||
${MINGW_PREFIX}/bin/ar rcs libEGL.a \
|
||||
out/Debug/obj.target/libEGL/../src/common/*.o \
|
||||
out/Debug/obj.target/libEGL/../src/libEGL/*.o
|
||||
# ${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \
|
||||
# out/Debug/obj.target/src/common/*.o \
|
||||
# out/Debug/obj.target/src/common/win32/*.o \
|
||||
# out/Debug/obj.target/src/compiler/translator/*.o \
|
||||
# out/Debug/obj.target/src/compiler/translator/depgraph/*.o \
|
||||
# out/Debug/obj.target/src/compiler/translator/timing/*.o \
|
||||
# out/Debug/obj.target/src/compiler/preprocessor/*.o \
|
||||
# out/Debug/obj.target/src/third_party/compiler/*.o \
|
||||
# out/Debug/obj.target/src/third_party/murmurhash/*.o \
|
||||
# out/Debug/obj.target/src/third_party/systeminfo/*.o \
|
||||
# out/Debug/obj.target/src/libGLESv2/*.o \
|
||||
# out/Debug/obj.target/src/libANGLE/renderer/*.o \
|
||||
# out/Debug/obj.target/src/libANGLE/renderer/d3d/*.o \
|
||||
# out/Debug/obj.target/src/libANGLE/renderer/d3d/d3d9/*.o \
|
||||
# out/Debug/obj.target/src/libANGLE/renderer/d3d/d3d11/*.o
|
||||
|
||||
popd
|
||||
# ${MINGW_PREFIX}/bin/ar rcs libEGL.a \
|
||||
# out/Debug/obj.target/libEGL/../src/common/RefCountObject.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/angleutils.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/debug.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/event_tracer.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/mathutil.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/tls.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/utilities.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/AttributeMap.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/Config.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/Display.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/Error.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/Surface.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/libEGL.o \
|
||||
# out/Debug/obj.target/libEGL/../src/libEGL/main.o \
|
||||
# out/Debug/obj.target/libEGL/../src/common/win32/NativeWindow.o
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}"/angleproject
|
||||
pushd build-${MINGW_CHOST}
|
||||
|
||||
mkdir -p "${pkgdir}${MINGW_PREFIX}"/{bin,lib,include}
|
||||
|
||||
install out/Debug/src/libGLESv2.dll "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll
|
||||
install out/Debug/src/libEGL.dll "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll
|
||||
install out/Debug/lib.target/libGLESv2.dll "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll
|
||||
install out/Debug/lib.target/libEGL.dll "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll
|
||||
|
||||
${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/bin/*.dll
|
||||
|
||||
install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
#install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
#install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
|
||||
${MINGW_PREFIX}/bin/strip --strip-debug "${pkgdir}${MINGW_PREFIX}"/lib/libEGL.a
|
||||
install libEGL.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
install libGLESv2.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
|
||||
${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/lib/*.dll.a
|
||||
|
||||
cp -Rv ../include/* "${pkgdir}${MINGW_PREFIX}"/include/
|
||||
|
||||
popd
|
||||
|
||||
install -Dm755 ${srcdir}/D3DCompiler_43-${CARCH}.dll "${pkgdir}${MINGW_PREFIX}"/bin/D3DCompiler_43.dll
|
||||
cp -Rv include/* "${pkgdir}${MINGW_PREFIX}"/include/
|
||||
}
|
||||
|
||||
@@ -1,37 +1,54 @@
|
||||
--- src/libGLESv2/libGLESv2.def.orig 2014-01-06 11:49:13.494061976 +0100
|
||||
+++ src/libGLESv2/libGLESv2.def 2014-01-06 11:49:15.984075067 +0100
|
||||
@@ -186,3 +186,14 @@ EXPORTS
|
||||
--- angle/src/libGLESv2/libGLESv2.def.orig 2014-12-30 12:59:07.560620988 +0100
|
||||
+++ angle/src/libGLESv2/libGLESv2.def 2014-12-30 13:00:22.381399755 +0100
|
||||
@@ -144,6 +144,7 @@
|
||||
glViewport @142
|
||||
|
||||
; Setting up TRACE macro callbacks
|
||||
SetTraceFunctionPointers @180
|
||||
+
|
||||
+ ; WebKit dependencies..
|
||||
+ ShInitBuiltInResources @200 NONAME
|
||||
+ ShInitialize @201 NONAME
|
||||
+ ShDestruct @202 NONAME
|
||||
+ ShGetInfo @203 NONAME
|
||||
+ ShGetInfoLog @204 NONAME
|
||||
+ ShGetObjectCode @207 NONAME
|
||||
+ ShCompile @208 NONAME
|
||||
+ ShConstructCompiler @209 NONAME
|
||||
+ ShGetVariableInfo @210 NONAME
|
||||
--- src/libGLESv2/libGLESv2_mingw32.def.orig 2014-01-06 13:17:51.686441162 +0100
|
||||
+++ src/libGLESv2/libGLESv2_mingw32.def 2014-01-06 13:17:21.853045374 +0100
|
||||
@@ -180,3 +180,17 @@ EXPORTS
|
||||
glGetCurrentContext @147 NONAME
|
||||
glGetProcAddress@4 @148 NONAME
|
||||
glBindTexImage@4 @158 NONAME
|
||||
+ glCreateRenderer @177 NONAME
|
||||
+ glDestroyRenderer @178 NONAME
|
||||
+ glDrawBuffersEXT@8 @179 NONAME
|
||||
; Extensions
|
||||
+ glTexImage3DOES @143
|
||||
glBlitFramebufferANGLE @149
|
||||
glRenderbufferStorageMultisampleANGLE @150
|
||||
glDeleteFencesNV @151
|
||||
@@ -291,3 +292,25 @@
|
||||
ANGLEPlatformCurrent @290
|
||||
ANGLEPlatformInitialize @291
|
||||
ANGLEPlatformShutdown @292
|
||||
+
|
||||
+ ; EGL dependencies
|
||||
+ glCreateContext @144 NONAME
|
||||
+ glDestroyContext @145 NONAME
|
||||
+ glMakeCurrent @146 NONAME
|
||||
+ glGetCurrentContext @147 NONAME
|
||||
+ glGetProcAddress @148 NONAME
|
||||
+ glBindTexImage @158 NONAME
|
||||
+ glCreateRenderer @177 NONAME
|
||||
+ glDestroyRenderer @178 NONAME
|
||||
+
|
||||
+ ; WebKit dependencies
|
||||
+ ShInitBuiltInResources @300 NONAME
|
||||
+ ShInitialize @301 NONAME
|
||||
+ ShDestruct @302 NONAME
|
||||
+ ShGetInfo @303 NONAME
|
||||
+ ShGetInfoLog @304 NONAME
|
||||
+ ShGetVariableInfo @305 NONAME
|
||||
+ ShGetObjectCode @306 NONAME
|
||||
+ ShCompile @307 NONAME
|
||||
+ ShConstructCompiler @308 NONAME
|
||||
+
|
||||
--- angle/src/libGLESv2/libGLESv2_mingw32.def.orig 2014-12-30 12:59:07.561620998 +0100
|
||||
+++ angle/src/libGLESv2/libGLESv2_mingw32.def 2014-12-30 13:01:37.782182097 +0100
|
||||
@@ -294,3 +294,15 @@
|
||||
glBindTexImage@4 @158 NONAME
|
||||
glCreateRenderer @177 NONAME
|
||||
glDestroyRenderer @178 NONAME
|
||||
+
|
||||
+ ; WebKit dependencies
|
||||
+ ShInitBuiltInResources @300 NONAME
|
||||
+ ShInitialize @301 NONAME
|
||||
+ ShDestruct @302 NONAME
|
||||
+ ShGetInfo @303 NONAME
|
||||
+ ShGetInfoLog @304 NONAME
|
||||
+ ShGetVariableInfo @305 NONAME
|
||||
+ ShGetObjectCode @306 NONAME
|
||||
+ ShCompile @307 NONAME
|
||||
+ ShConstructCompiler @308 NONAME
|
||||
+
|
||||
+ ; WebKit dependencies..
|
||||
+ ShInitBuiltInResources @200 NONAME
|
||||
+ ShInitialize @201 NONAME
|
||||
+ ShDestruct @202 NONAME
|
||||
+ ShGetInfo @203 NONAME
|
||||
+ ShGetInfoLog @204 NONAME
|
||||
+ ShGetObjectCode @207 NONAME
|
||||
+ ShCompile @208 NONAME
|
||||
+ ShConstructCompiler @209 NONAME
|
||||
+ ShGetVariableInfo @210 NONAME
|
||||
|
||||
@@ -1,224 +0,0 @@
|
||||
--- /dev/null
|
||||
+++ src/libEGL/libEGL_mingw32.def
|
||||
@@ -0,0 +1,36 @@
|
||||
+LIBRARY libEGL
|
||||
+EXPORTS
|
||||
+ eglBindAPI@4 @14
|
||||
+ eglBindTexImage@12 @20
|
||||
+ eglChooseConfig@20 @7
|
||||
+ eglCopyBuffers@12 @33
|
||||
+ eglCreateContext@16 @23
|
||||
+ eglCreatePbufferFromClientBuffer@20 @18
|
||||
+ eglCreatePbufferSurface@12 @10
|
||||
+ eglCreatePixmapSurface@16 @11
|
||||
+ eglCreateWindowSurface@16 @9
|
||||
+ eglDestroyContext@8 @24
|
||||
+ eglDestroySurface@8 @12
|
||||
+ eglGetConfigAttrib@16 @8
|
||||
+ eglGetConfigs@16 @6
|
||||
+ eglGetCurrentContext@0 @26
|
||||
+ eglGetCurrentDisplay@0 @28
|
||||
+ eglGetCurrentSurface@4 @27
|
||||
+ eglGetDisplay@4 @2
|
||||
+ eglGetError@0 @1
|
||||
+ eglGetProcAddress@4 @34
|
||||
+ eglInitialize@12 @3
|
||||
+ eglMakeCurrent@16 @25
|
||||
+ eglQueryAPI@0 @15
|
||||
+ eglQueryContext@16 @29
|
||||
+ eglQueryString@8 @5
|
||||
+ eglQuerySurface@16 @13
|
||||
+ eglReleaseTexImage@12 @21
|
||||
+ eglReleaseThread@0 @17
|
||||
+ eglSurfaceAttrib@16 @19
|
||||
+ eglSwapBuffers@8 @32
|
||||
+ eglSwapInterval@8 @22
|
||||
+ eglTerminate@4 @4
|
||||
+ eglWaitClient@0 @16
|
||||
+ eglWaitGL@0 @30
|
||||
+ eglWaitNative@4 @31
|
||||
--- /dev/null
|
||||
+++ src/libGLESv2/libGLESv2_mingw32.def
|
||||
@@ -0,0 +1,182 @@
|
||||
+LIBRARY libGLESv2
|
||||
+EXPORTS
|
||||
+ glActiveTexture@4 @1
|
||||
+ glAttachShader@8 @2
|
||||
+ glBindAttribLocation@12 @3
|
||||
+ glBindBuffer@8 @4
|
||||
+ glBindFramebuffer@8 @5
|
||||
+ glBindRenderbuffer@8 @6
|
||||
+ glBindTexture@8 @7
|
||||
+ glBlendColor@16 @8
|
||||
+ glBlendEquation@4 @9
|
||||
+ glBlendEquationSeparate@8 @10
|
||||
+ glBlendFunc@8 @11
|
||||
+ glBlendFuncSeparate@16 @12
|
||||
+ glBufferData@16 @13
|
||||
+ glBufferSubData@16 @14
|
||||
+ glCheckFramebufferStatus@4 @15
|
||||
+ glClear@4 @16
|
||||
+ glClearColor@16 @17
|
||||
+ glClearDepthf@4 @18
|
||||
+ glClearStencil@4 @19
|
||||
+ glColorMask@16 @20
|
||||
+ glCompileShader@4 @21
|
||||
+ glCompressedTexImage2D@32 @22
|
||||
+ glCompressedTexSubImage2D@36 @23
|
||||
+ glCopyTexImage2D@32 @24
|
||||
+ glCopyTexSubImage2D@32 @25
|
||||
+ glCreateProgram@0 @26
|
||||
+ glCreateShader@4 @27
|
||||
+ glCullFace@4 @28
|
||||
+ glDeleteBuffers@8 @29
|
||||
+ glDeleteFramebuffers@8 @30
|
||||
+ glDeleteProgram@4 @32
|
||||
+ glDeleteRenderbuffers@8 @33
|
||||
+ glDeleteShader@4 @34
|
||||
+ glDeleteTextures@8 @31
|
||||
+ glDepthFunc@4 @36
|
||||
+ glDepthMask@4 @37
|
||||
+ glDepthRangef@8 @38
|
||||
+ glDetachShader@8 @35
|
||||
+ glDisable@4 @39
|
||||
+ glDisableVertexAttribArray@4 @40
|
||||
+ glDrawArrays@12 @41
|
||||
+ glDrawElements@16 @42
|
||||
+ glEnable@4 @43
|
||||
+ glEnableVertexAttribArray@4 @44
|
||||
+ glFinish@0 @45
|
||||
+ glFlush@0 @46
|
||||
+ glFramebufferRenderbuffer@16 @47
|
||||
+ glFramebufferTexture2D@20 @48
|
||||
+ glFrontFace@4 @49
|
||||
+ glGenBuffers@8 @50
|
||||
+ glGenFramebuffers@8 @52
|
||||
+ glGenRenderbuffers@8 @53
|
||||
+ glGenTextures@8 @54
|
||||
+ glGenerateMipmap@4 @51
|
||||
+ glGetActiveAttrib@28 @55
|
||||
+ glGetActiveUniform@28 @56
|
||||
+ glGetAttachedShaders@16 @57
|
||||
+ glGetAttribLocation@8 @58
|
||||
+ glGetBooleanv@8 @59
|
||||
+ glGetBufferParameteriv@12 @60
|
||||
+ glGetError@0 @61
|
||||
+ glGetFloatv@8 @62
|
||||
+ glGetFramebufferAttachmentParameteriv@16 @63
|
||||
+ glGetIntegerv@8 @64
|
||||
+ glGetProgramInfoLog@16 @66
|
||||
+ glGetProgramiv@12 @65
|
||||
+ glGetRenderbufferParameteriv@12 @67
|
||||
+ glGetShaderInfoLog@16 @69
|
||||
+ glGetShaderPrecisionFormat@16 @70
|
||||
+ glGetShaderSource@16 @71
|
||||
+ glGetShaderiv@12 @68
|
||||
+ glGetString@4 @72
|
||||
+ glGetTexParameterfv@12 @73
|
||||
+ glGetTexParameteriv@12 @74
|
||||
+ glGetUniformLocation@8 @77
|
||||
+ glGetUniformfv@12 @75
|
||||
+ glGetUniformiv@12 @76
|
||||
+ glGetVertexAttribPointerv@12 @80
|
||||
+ glGetVertexAttribfv@12 @78
|
||||
+ glGetVertexAttribiv@12 @79
|
||||
+ glHint@8 @81
|
||||
+ glIsBuffer@4 @82
|
||||
+ glIsEnabled@4 @83
|
||||
+ glIsFramebuffer@4 @84
|
||||
+ glIsProgram@4 @85
|
||||
+ glIsRenderbuffer@4 @86
|
||||
+ glIsShader@4 @87
|
||||
+ glIsTexture@4 @88
|
||||
+ glLineWidth@4 @89
|
||||
+ glLinkProgram@4 @90
|
||||
+ glPixelStorei@8 @91
|
||||
+ glPolygonOffset@8 @92
|
||||
+ glReadPixels@28 @93
|
||||
+ glReleaseShaderCompiler@0 @94
|
||||
+ glRenderbufferStorage@16 @95
|
||||
+ glSampleCoverage@8 @96
|
||||
+ glScissor@16 @97
|
||||
+ glShaderBinary@20 @98
|
||||
+ glShaderSource@16 @99
|
||||
+ glStencilFunc@12 @100
|
||||
+ glStencilFuncSeparate@16 @101
|
||||
+ glStencilMask@4 @102
|
||||
+ glStencilMaskSeparate@8 @103
|
||||
+ glStencilOp@12 @104
|
||||
+ glStencilOpSeparate@16 @105
|
||||
+ glTexImage2D@36 @106
|
||||
+ glTexParameterf@12 @107
|
||||
+ glTexParameterfv@12 @108
|
||||
+ glTexParameteri@12 @109
|
||||
+ glTexParameteriv@12 @110
|
||||
+ glTexSubImage2D@36 @111
|
||||
+ glUniform1f@8 @112
|
||||
+ glUniform1fv@12 @113
|
||||
+ glUniform1i@8 @114
|
||||
+ glUniform1iv@12 @115
|
||||
+ glUniform2f@12 @116
|
||||
+ glUniform2fv@12 @117
|
||||
+ glUniform2i@12 @118
|
||||
+ glUniform2iv@12 @119
|
||||
+ glUniform3f@16 @120
|
||||
+ glUniform3fv@12 @121
|
||||
+ glUniform3i@16 @122
|
||||
+ glUniform3iv@12 @123
|
||||
+ glUniform4f@20 @124
|
||||
+ glUniform4fv@12 @125
|
||||
+ glUniform4i@20 @126
|
||||
+ glUniform4iv@12 @127
|
||||
+ glUniformMatrix2fv@16 @128
|
||||
+ glUniformMatrix3fv@16 @129
|
||||
+ glUniformMatrix4fv@16 @130
|
||||
+ glUseProgram@4 @131
|
||||
+ glValidateProgram@4 @132
|
||||
+ glVertexAttrib1f@8 @133
|
||||
+ glVertexAttrib1fv@8 @134
|
||||
+ glVertexAttrib2f@12 @135
|
||||
+ glVertexAttrib2fv@8 @136
|
||||
+ glVertexAttrib3f@16 @137
|
||||
+ glVertexAttrib3fv@8 @138
|
||||
+ glVertexAttrib4f@20 @139
|
||||
+ glVertexAttrib4fv@8 @140
|
||||
+ glVertexAttribPointer@24 @141
|
||||
+ glViewport@16 @142
|
||||
+
|
||||
+ ; Extensions
|
||||
+ glTexImage3DOES@40 @143
|
||||
+ glBlitFramebufferANGLE@40 @149
|
||||
+ glRenderbufferStorageMultisampleANGLE@20 @150
|
||||
+ glDeleteFencesNV@8 @151
|
||||
+ glFinishFenceNV@4 @152
|
||||
+ glGenFencesNV@8 @153
|
||||
+ glGetFenceivNV@12 @154
|
||||
+ glIsFenceNV@4 @155
|
||||
+ glSetFenceNV@8 @156
|
||||
+ glTestFenceNV@4 @157
|
||||
+ glGetTranslatedShaderSourceANGLE@16 @159
|
||||
+ glTexStorage2DEXT@20 @160
|
||||
+ glGetGraphicsResetStatusEXT@0 @161
|
||||
+ glReadnPixelsEXT@32 @162
|
||||
+ glGetnUniformfvEXT@16 @163
|
||||
+ glGetnUniformivEXT@16 @164
|
||||
+ glGenQueriesEXT@8 @165
|
||||
+ glDeleteQueriesEXT@8 @166
|
||||
+ glIsQueryEXT@4 @167
|
||||
+ glBeginQueryEXT@8 @168
|
||||
+ glEndQueryEXT@4 @169
|
||||
+ glGetQueryivEXT@12 @170
|
||||
+ glGetQueryObjectuivEXT@12 @171
|
||||
+ glVertexAttribDivisorANGLE@8 @172
|
||||
+ glDrawArraysInstancedANGLE@16 @173
|
||||
+ glDrawElementsInstancedANGLE@20 @174
|
||||
+ glProgramBinaryOES@16 @175
|
||||
+ glGetProgramBinaryOES@20 @176
|
||||
+
|
||||
+ ; EGL dependencies
|
||||
+ glCreateContext @144 NONAME
|
||||
+ glDestroyContext @145 NONAME
|
||||
+ glMakeCurrent @146 NONAME
|
||||
+ glGetCurrentContext @147 NONAME
|
||||
+ glGetProcAddress@4 @148 NONAME
|
||||
+ glBindTexImage@4 @158 NONAME
|
||||
@@ -1,23 +0,0 @@
|
||||
--- src.orig/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:45.401522829 +0100
|
||||
+++ src/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:52.004935151 +0100
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "libGLESv2/Context.h"
|
||||
|
||||
#include "common/debug.h"
|
||||
+#include <stdio.h>
|
||||
|
||||
namespace gl_d3d9
|
||||
{
|
||||
@@ -381,9 +382,12 @@ GLenum ConvertDepthStencilFormat(D3DFORM
|
||||
return GL_DEPTH_COMPONENT16;
|
||||
case D3DFMT_D24S8:
|
||||
return GL_DEPTH24_STENCIL8_OES;
|
||||
+ case D3DFMT_D32:
|
||||
+ return GL_DEPTH_COMPONENT16;
|
||||
case D3DFMT_UNKNOWN:
|
||||
return GL_NONE;
|
||||
default:
|
||||
+ printf("unknown D3DFORMAT (stencil format): %d\n", (int)format);
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
--- src/third_party/trace_event/trace_event.h.orig 2014-01-06 10:40:41.106093009 +0100
|
||||
+++ src/third_party/trace_event/trace_event.h 2014-01-06 10:40:09.310989874 +0100
|
||||
@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0;
|
||||
class TraceID {
|
||||
public:
|
||||
explicit TraceID(const void* id, unsigned char* flags) :
|
||||
- m_data(static_cast<unsigned long long>(reinterpret_cast<unsigned long>(id)))
|
||||
+ m_data((unsigned long long)id)
|
||||
{
|
||||
*flags |= TRACE_EVENT_FLAG_MANGLE_ID;
|
||||
}
|
||||
@@ -806,14 +806,14 @@ public:
|
||||
}
|
||||
|
||||
// FIXME: Make load/store to traceSamplingState[] thread-safe and atomic.
|
||||
- static inline const char* current()
|
||||
+ /*static inline const char* current()
|
||||
{
|
||||
return reinterpret_cast<const char*>(*gl::traceSamplingState[BucketNumber]);
|
||||
}
|
||||
static inline void set(const char* categoryAndName)
|
||||
{
|
||||
*gl::traceSamplingState[BucketNumber] = reinterpret_cast<long>(const_cast<char*>(categoryAndName));
|
||||
- }
|
||||
+ }*/
|
||||
|
||||
private:
|
||||
const char* m_previousState;
|
||||
@@ -1,45 +1,38 @@
|
||||
--- src.orig/libEGL.gypi 2014-01-11 12:17:37.971020837 +0100
|
||||
+++ src/libEGL.gypi 2014-01-11 12:20:05.406870084 +0100
|
||||
@@ -13,6 +13,14 @@
|
||||
'target_name': 'libEGL',
|
||||
'type': 'shared_library',
|
||||
'dependencies': [ 'libGLESv2', 'commit_id' ],
|
||||
+ 'conditions': [
|
||||
+ ['TARGET=="win32" and GENERATOR == "make"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL_mingw32.def -Wl,--whole-archive -L. -lGLESv2 -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
|
||||
+ }],
|
||||
+ ['TARGET=="win64" and GENERATOR == "make"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL.def -Wl,--whole-archive -L. -lGLESv2 -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
|
||||
+ }],
|
||||
+ ],
|
||||
'include_dirs':
|
||||
[
|
||||
'.',
|
||||
--- src.orig/libGLESv2.gypi 2014-01-11 12:17:37.971020837 +0100
|
||||
+++ src/libGLESv2.gypi 2014-01-11 12:19:22.916166993 +0100
|
||||
@@ -23,6 +23,14 @@
|
||||
'target_name': 'libGLESv2',
|
||||
'type': 'shared_library',
|
||||
'dependencies': [ 'translator', 'commit_id', 'copy_compiler_dll' ],
|
||||
+ 'conditions': [
|
||||
+ ['TARGET=="win32" and GENERATOR == "make"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2_mingw32.def -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
|
||||
+ }],
|
||||
+ ['TARGET=="win64" and GENERATOR == "make"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2.def -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
|
||||
+ }],
|
||||
+ ],
|
||||
'include_dirs':
|
||||
[
|
||||
'.',
|
||||
--- src.orig/angle.gypi 2014-01-11 12:28:41.414124056 +0100
|
||||
+++ src/angle.gypi 2014-01-11 12:31:06.065777743 +0100
|
||||
@@ -38,7 +38,7 @@
|
||||
'message': 'Copying D3D Compiler DLL...',
|
||||
'inputs': [ 'copy_compiler_dll.bat' ],
|
||||
'outputs': [ '<(PRODUCT_DIR)/D3DCompiler_46.dll' ],
|
||||
- 'action': ["<(angle_relative_src_path)/copy_compiler_dll.bat", "$(PlatformName)", "<(windows_sdk_path)", "<(PRODUCT_DIR)" ],
|
||||
+ 'action': ["touch", '<(PRODUCT_DIR)/D3DCompiler_46.dll' ],
|
||||
}
|
||||
] #actions
|
||||
},
|
||||
--- angleproject/src/libEGL.gypi.orig 2015-07-10 11:42:08.230786800 +0300
|
||||
+++ angleproject/src/libEGL.gypi 2015-07-10 11:44:01.168491900 +0300
|
||||
@@ -48,7 +48,16 @@
|
||||
{
|
||||
'msvs_enable_winphone' : '1',
|
||||
}],
|
||||
+ ['TARGET=="win32"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ],
|
||||
+ }],
|
||||
+ ['TARGET=="win64"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ],
|
||||
+ }],
|
||||
],
|
||||
+ 'libraries': [
|
||||
+ '-ldxguid -ld3d9 -lgdi32'
|
||||
+ ]
|
||||
},
|
||||
],
|
||||
}
|
||||
--- angleproject/src/libGLESv2.gypi.orig 2015-07-10 11:41:58.223787600 +0300
|
||||
+++ angleproject/src/libGLESv2.gypi 2015-07-10 11:44:36.585949800 +0300
|
||||
@@ -826,7 +826,16 @@
|
||||
{
|
||||
'msvs_enable_winphone' : '1',
|
||||
}],
|
||||
+ ['TARGET=="win32"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ],
|
||||
+ }],
|
||||
+ ['TARGET=="win64"', {
|
||||
+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ],
|
||||
+ }],
|
||||
],
|
||||
+ 'libraries': [
|
||||
+ '-ldxguid -ld3d9 -lgdi32'
|
||||
+ ]
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
53
mingw-w64-angleproject-git/libEGL_mingw32.def
Normal file
53
mingw-w64-angleproject-git/libEGL_mingw32.def
Normal file
@@ -0,0 +1,53 @@
|
||||
LIBRARY libEGL
|
||||
EXPORTS
|
||||
eglBindAPI@4 @14
|
||||
eglBindTexImage@12 @20
|
||||
eglChooseConfig@20 @7
|
||||
eglCopyBuffers@12 @33
|
||||
eglCreateContext@16 @23
|
||||
eglCreatePbufferFromClientBuffer@20 @18
|
||||
eglCreatePbufferSurface@12 @10
|
||||
eglCreatePixmapSurface@16 @11
|
||||
eglCreateWindowSurface@16 @9
|
||||
eglDestroyContext@8 @24
|
||||
eglDestroySurface@8 @12
|
||||
eglGetConfigAttrib@16 @8
|
||||
eglGetConfigs@16 @6
|
||||
eglGetCurrentContext@0 @26
|
||||
eglGetCurrentDisplay@0 @28
|
||||
eglGetCurrentSurface@4 @27
|
||||
eglGetDisplay@4 @2
|
||||
eglGetError@0 @1
|
||||
eglGetProcAddress@4 @34
|
||||
eglInitialize@12 @3
|
||||
eglMakeCurrent@16 @25
|
||||
eglQueryAPI@0 @15
|
||||
eglQueryContext@16 @29
|
||||
eglQueryString@8 @5
|
||||
eglQuerySurface@16 @13
|
||||
eglReleaseTexImage@12 @21
|
||||
eglReleaseThread@0 @17
|
||||
eglSurfaceAttrib@16 @19
|
||||
eglSwapBuffers@8 @32
|
||||
eglSwapInterval@8 @22
|
||||
eglTerminate@4 @4
|
||||
eglWaitClient@0 @16
|
||||
eglWaitGL@0 @30
|
||||
eglWaitNative@4 @31
|
||||
|
||||
; Extensions
|
||||
eglGetPlatformDisplayEXT@12 @35
|
||||
eglQuerySurfacePointerANGLE@16 @36
|
||||
eglPostSubBufferNV@24 @37
|
||||
|
||||
; 1.5 entry points
|
||||
eglCreateSync@12 @38
|
||||
eglDestroySyn@8 @39
|
||||
eglClientWaitSync@16 @40
|
||||
eglGetSyncAttrib@16 @41
|
||||
eglCreateImage@20 @42
|
||||
eglDestroyImage@8 @43
|
||||
eglGetPlatformDisplay@12 @44
|
||||
eglCreatePlatformWindowSurface@16 @45
|
||||
eglCreatePlatformPixmapSurface@16 @46
|
||||
eglWaitSync@12 @47
|
||||
304
mingw-w64-angleproject-git/libGLESv2_mingw32.def
Normal file
304
mingw-w64-angleproject-git/libGLESv2_mingw32.def
Normal file
@@ -0,0 +1,304 @@
|
||||
LIBRARY libGLESv2
|
||||
EXPORTS
|
||||
glActiveTexture@4 @1
|
||||
glAttachShader@8 @2
|
||||
glBindAttribLocation@12 @3
|
||||
glBindBuffer@8 @4
|
||||
glBindFramebuffer@8 @5
|
||||
glBindRenderbuffer@8 @6
|
||||
glBindTexture@8 @7
|
||||
glBlendColor@16 @8
|
||||
glBlendEquation@4 @9
|
||||
glBlendEquationSeparate@8 @10
|
||||
glBlendFunc@8 @11
|
||||
glBlendFuncSeparate@16 @12
|
||||
glBufferData@16 @13
|
||||
glBufferSubData@16 @14
|
||||
glCheckFramebufferStatus@4 @15
|
||||
glClear@4 @16
|
||||
glClearColor@16 @17
|
||||
glClearDepthf@4 @18
|
||||
glClearStencil@4 @19
|
||||
glColorMask@16 @20
|
||||
glCompileShader@4 @21
|
||||
glCompressedTexImage2D@32 @22
|
||||
glCompressedTexSubImage2D@36 @23
|
||||
glCopyTexImage2D@32 @24
|
||||
glCopyTexSubImage2D@32 @25
|
||||
glCreateProgram@0 @26
|
||||
glCreateShader@4 @27
|
||||
glCullFace@4 @28
|
||||
glDeleteBuffers@8 @29
|
||||
glDeleteFramebuffers@8 @30
|
||||
glDeleteProgram@4 @32
|
||||
glDeleteRenderbuffers@8 @33
|
||||
glDeleteShader@4 @34
|
||||
glDeleteTextures@8 @31
|
||||
glDepthFunc@4 @36
|
||||
glDepthMask@4 @37
|
||||
glDepthRangef@8 @38
|
||||
glDetachShader@8 @35
|
||||
glDisable@4 @39
|
||||
glDisableVertexAttribArray@4 @40
|
||||
glDrawArrays@12 @41
|
||||
glDrawElements@16 @42
|
||||
glEnable@4 @43
|
||||
glEnableVertexAttribArray@4 @44
|
||||
glFinish@0 @45
|
||||
glFlush@0 @46
|
||||
glFramebufferRenderbuffer@16 @47
|
||||
glFramebufferTexture2D@20 @48
|
||||
glFrontFace@4 @49
|
||||
glGenBuffers@8 @50
|
||||
glGenFramebuffers@8 @52
|
||||
glGenRenderbuffers@8 @53
|
||||
glGenTextures@8 @54
|
||||
glGenerateMipmap@4 @51
|
||||
glGetActiveAttrib@28 @55
|
||||
glGetActiveUniform@28 @56
|
||||
glGetAttachedShaders@16 @57
|
||||
glGetAttribLocation@8 @58
|
||||
glGetBooleanv@8 @59
|
||||
glGetBufferParameteriv@12 @60
|
||||
glGetError@0 @61
|
||||
glGetFloatv@8 @62
|
||||
glGetFramebufferAttachmentParameteriv@16 @63
|
||||
glGetIntegerv@8 @64
|
||||
glGetProgramInfoLog@16 @66
|
||||
glGetProgramiv@12 @65
|
||||
glGetRenderbufferParameteriv@12 @67
|
||||
glGetShaderInfoLog@16 @69
|
||||
glGetShaderPrecisionFormat@16 @70
|
||||
glGetShaderSource@16 @71
|
||||
glGetShaderiv@12 @68
|
||||
glGetString@4 @72
|
||||
glGetTexParameterfv@12 @73
|
||||
glGetTexParameteriv@12 @74
|
||||
glGetUniformLocation@8 @77
|
||||
glGetUniformfv@12 @75
|
||||
glGetUniformiv@12 @76
|
||||
glGetVertexAttribPointerv@12 @80
|
||||
glGetVertexAttribfv@12 @78
|
||||
glGetVertexAttribiv@12 @79
|
||||
glHint@8 @81
|
||||
glIsBuffer@4 @82
|
||||
glIsEnabled@4 @83
|
||||
glIsFramebuffer@4 @84
|
||||
glIsProgram@4 @85
|
||||
glIsRenderbuffer@4 @86
|
||||
glIsShader@4 @87
|
||||
glIsTexture@4 @88
|
||||
glLineWidth@4 @89
|
||||
glLinkProgram@4 @90
|
||||
glPixelStorei@8 @91
|
||||
glPolygonOffset@8 @92
|
||||
glReadPixels@28 @93
|
||||
glReleaseShaderCompiler@0 @94
|
||||
glRenderbufferStorage@16 @95
|
||||
glSampleCoverage@8 @96
|
||||
glScissor@16 @97
|
||||
glShaderBinary@20 @98
|
||||
glShaderSource@16 @99
|
||||
glStencilFunc@12 @100
|
||||
glStencilFuncSeparate@16 @101
|
||||
glStencilMask@4 @102
|
||||
glStencilMaskSeparate@8 @103
|
||||
glStencilOp@12 @104
|
||||
glStencilOpSeparate@16 @105
|
||||
glTexImage2D@36 @106
|
||||
glTexParameterf@12 @107
|
||||
glTexParameterfv@12 @108
|
||||
glTexParameteri@12 @109
|
||||
glTexParameteriv@12 @110
|
||||
glTexSubImage2D@36 @111
|
||||
glUniform1f@8 @112
|
||||
glUniform1fv@12 @113
|
||||
glUniform1i@8 @114
|
||||
glUniform1iv@12 @115
|
||||
glUniform2f@12 @116
|
||||
glUniform2fv@12 @117
|
||||
glUniform2i@12 @118
|
||||
glUniform2iv@12 @119
|
||||
glUniform3f@16 @120
|
||||
glUniform3fv@12 @121
|
||||
glUniform3i@16 @122
|
||||
glUniform3iv@12 @123
|
||||
glUniform4f@20 @124
|
||||
glUniform4fv@12 @125
|
||||
glUniform4i@20 @126
|
||||
glUniform4iv@12 @127
|
||||
glUniformMatrix2fv@16 @128
|
||||
glUniformMatrix3fv@16 @129
|
||||
glUniformMatrix4fv@16 @130
|
||||
glUseProgram@4 @131
|
||||
glValidateProgram@4 @132
|
||||
glVertexAttrib1f@8 @133
|
||||
glVertexAttrib1fv@8 @134
|
||||
glVertexAttrib2f@12 @135
|
||||
glVertexAttrib2fv@8 @136
|
||||
glVertexAttrib3f@16 @137
|
||||
glVertexAttrib3fv@8 @138
|
||||
glVertexAttrib4f@20 @139
|
||||
glVertexAttrib4fv@8 @140
|
||||
glVertexAttribPointer@24 @141
|
||||
glViewport@16 @142
|
||||
|
||||
; Extensions
|
||||
glTexImage3DOES@40 @143
|
||||
glBlitFramebufferANGLE@40 @149
|
||||
glRenderbufferStorageMultisampleANGLE@20 @150
|
||||
glDeleteFencesNV@8 @151
|
||||
glFinishFenceNV@4 @152
|
||||
glGenFencesNV@8 @153
|
||||
glGetFenceivNV@12 @154
|
||||
glIsFenceNV@4 @155
|
||||
glSetFenceNV@8 @156
|
||||
glTestFenceNV@4 @157
|
||||
glGetTranslatedShaderSourceANGLE@16 @159
|
||||
glTexStorage2DEXT@20 @160
|
||||
glGetGraphicsResetStatusEXT@0 @161
|
||||
glReadnPixelsEXT@32 @162
|
||||
glGetnUniformfvEXT@16 @163
|
||||
glGetnUniformivEXT@16 @164
|
||||
glGenQueriesEXT@8 @165
|
||||
glDeleteQueriesEXT@8 @166
|
||||
glIsQueryEXT@4 @167
|
||||
glBeginQueryEXT@8 @168
|
||||
glEndQueryEXT@4 @169
|
||||
glGetQueryivEXT@12 @170
|
||||
glGetQueryObjectuivEXT@12 @171
|
||||
glVertexAttribDivisorANGLE@8 @172
|
||||
glDrawArraysInstancedANGLE@16 @173
|
||||
glDrawElementsInstancedANGLE@20 @174
|
||||
glProgramBinaryOES@16 @175
|
||||
glGetProgramBinaryOES@20 @176
|
||||
glDrawBuffersEXT@8 @179
|
||||
glMapBufferOES@8 @285
|
||||
glUnmapBufferOES@4 @286
|
||||
glGetBufferPointervOES@12 @287
|
||||
glMapBufferRangeEXT@16 @288
|
||||
glFlushMappedBufferRangeEXT@12 @289
|
||||
|
||||
; GLES 3.0 Functions
|
||||
glReadBuffer@4 @180
|
||||
glDrawRangeElements@24 @181
|
||||
glTexImage3D@40 @182
|
||||
glTexSubImage3D@44 @183
|
||||
glCopyTexSubImage3D@36 @184
|
||||
glCompressedTexImage3D@36 @185
|
||||
glCompressedTexSubImage3D@44 @186
|
||||
glGenQueries@8 @187
|
||||
glDeleteQueries@8 @188
|
||||
glIsQuery@4 @189
|
||||
glBeginQuery@8 @190
|
||||
glEndQuery@4 @191
|
||||
glGetQueryiv@12 @192
|
||||
glGetQueryObjectuiv@12 @193
|
||||
glUnmapBuffer@4 @194
|
||||
glGetBufferPointerv@12 @195
|
||||
glDrawBuffers@8 @196
|
||||
glUniformMatrix2x3fv@16 @197
|
||||
glUniformMatrix3x2fv@16 @198
|
||||
glUniformMatrix2x4fv@16 @199
|
||||
glUniformMatrix4x2fv@16 @200
|
||||
glUniformMatrix3x4fv@16 @201
|
||||
glUniformMatrix4x3fv@16 @202
|
||||
glBlitFramebuffer@40 @203
|
||||
glRenderbufferStorageMultisample@20 @204
|
||||
glFramebufferTextureLayer@20 @205
|
||||
glMapBufferRange@16 @206
|
||||
glFlushMappedBufferRange@12 @207
|
||||
glBindVertexArray@4 @208
|
||||
glDeleteVertexArrays@8 @209
|
||||
glGenVertexArrays@8 @210
|
||||
glIsVertexArray@4 @211
|
||||
glGetIntegeri_v@12 @212
|
||||
glBeginTransformFeedback@4 @213
|
||||
glEndTransformFeedback@0 @214
|
||||
glBindBufferRange@20 @215
|
||||
glBindBufferBase@12 @216
|
||||
glTransformFeedbackVaryings@16 @217
|
||||
glGetTransformFeedbackVarying@28 @218
|
||||
glVertexAttribIPointer@20 @219
|
||||
glGetVertexAttribIiv@12 @220
|
||||
glGetVertexAttribIuiv@12 @221
|
||||
glVertexAttribI4i@20 @222
|
||||
glVertexAttribI4ui@20 @223
|
||||
glVertexAttribI4iv@8 @224
|
||||
glVertexAttribI4uiv@8 @225
|
||||
glGetUniformuiv@12 @226
|
||||
glGetFragDataLocation@8 @227
|
||||
glUniform1ui@8 @228
|
||||
glUniform2ui@12 @229
|
||||
glUniform3ui@16 @230
|
||||
glUniform4ui@20 @231
|
||||
glUniform1uiv@12 @232
|
||||
glUniform2uiv@12 @233
|
||||
glUniform3uiv@12 @234
|
||||
glUniform4uiv@12 @235
|
||||
glClearBufferiv@12 @236
|
||||
glClearBufferuiv@12 @237
|
||||
glClearBufferfv@12 @238
|
||||
glClearBufferfi@16 @239
|
||||
glGetStringi@8 @240
|
||||
glCopyBufferSubData@20 @241
|
||||
glGetUniformIndices@16 @242
|
||||
glGetActiveUniformsiv@20 @243
|
||||
glGetUniformBlockIndex@8 @244
|
||||
glGetActiveUniformBlockiv@16 @245
|
||||
glGetActiveUniformBlockName@20 @246
|
||||
glUniformBlockBinding@12 @247
|
||||
glDrawArraysInstanced@16 @248
|
||||
glDrawElementsInstanced@20 @249
|
||||
glFenceSync@8 @250
|
||||
glIsSync@4 @251
|
||||
glDeleteSync@4 @252
|
||||
glClientWaitSync@16 @253
|
||||
glWaitSync@16 @254
|
||||
glGetInteger64v@8 @255
|
||||
glGetSynciv@20 @256
|
||||
glGetInteger64i_v@12 @257
|
||||
glGetBufferParameteri64v@12 @258
|
||||
glGenSamplers@8 @259
|
||||
glDeleteSamplers@8 @260
|
||||
glIsSampler@4 @261
|
||||
glBindSampler@8 @262
|
||||
glSamplerParameteri@12 @263
|
||||
glSamplerParameteriv@12 @264
|
||||
glSamplerParameterf@12 @265
|
||||
glSamplerParameterfv@12 @266
|
||||
glGetSamplerParameteriv@12 @267
|
||||
glGetSamplerParameterfv@12 @268
|
||||
glVertexAttribDivisor@8 @269
|
||||
glBindTransformFeedback@8 @270
|
||||
glDeleteTransformFeedbacks@8 @271
|
||||
glGenTransformFeedbacks@8 @272
|
||||
glIsTransformFeedback@4 @273
|
||||
glPauseTransformFeedback@0 @274
|
||||
glResumeTransformFeedback@0 @275
|
||||
glGetProgramBinary@20 @276
|
||||
glProgramBinary@16 @277
|
||||
glProgramParameteri@12 @278
|
||||
glInvalidateFramebuffer@12 @279
|
||||
glInvalidateSubFramebuffer@28 @280
|
||||
glTexStorage2D@20 @281
|
||||
glTexStorage3D@24 @282
|
||||
glGetInternalformativ@20 @283
|
||||
|
||||
; Setting up TRACE macro callbacks
|
||||
SetTraceFunctionPointers @284
|
||||
|
||||
; ANGLE Platform Implementation
|
||||
ANGLEPlatformCurrent @290
|
||||
ANGLEPlatformInitialize @291
|
||||
ANGLEPlatformShutdown @292
|
||||
|
||||
; EGL dependencies
|
||||
glCreateContext @144 NONAME
|
||||
glDestroyContext @145 NONAME
|
||||
glMakeCurrent @146 NONAME
|
||||
glGetCurrentContext @147 NONAME
|
||||
glGetProcAddress@4 @148 NONAME
|
||||
glBindTexImage@4 @158 NONAME
|
||||
glCreateRenderer @177 NONAME
|
||||
glDestroyRenderer @178 NONAME
|
||||
@@ -0,0 +1,42 @@
|
||||
From ba0444146c35848917101b28f3463cd0df08a02d Mon Sep 17 00:00:00 2001
|
||||
From: David Macek <david.macek.0@gmail.com>
|
||||
Date: Tue, 10 Mar 2015 00:22:35 +0100
|
||||
Subject: [PATCH] Do not invoke cmd in makefile
|
||||
|
||||
---
|
||||
makefile.gcc | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/makefile.gcc b/makefile.gcc
|
||||
index 7000335..281cbe7 100644
|
||||
--- a/makefile.gcc
|
||||
+++ b/makefile.gcc
|
||||
@@ -90,7 +90,7 @@ ansicon32: x86 x86/ansicon.exe x86/ANSI32.dll x64 x64/ANSI32.dll
|
||||
ansicon64: x64 x64/ansicon.exe x64/ANSI64.dll
|
||||
|
||||
x86:
|
||||
- cmd /c "mkdir x86"
|
||||
+ mkdir x86
|
||||
|
||||
x86/ansicon.exe: x86/ansicon.o $(X86OBJS) x86/procrva.o x86/ansiconv.o
|
||||
$(LDmsg)$(CC) -m32 $+ -s -o $@ $(IVER)
|
||||
@@ -99,7 +99,7 @@ x86/ANSI32.dll: x86/ANSI.o $(X86OBJS) x86/ansiv.o
|
||||
$(LDmsg)$(CC) -m32 $+ -s -o $@ -mdll -Wl,-shared,--image-base,0xAC0000
|
||||
|
||||
x64:
|
||||
- cmd /c "mkdir x64"
|
||||
+ mkdir x64
|
||||
|
||||
x64/ansicon.exe: x64/ansicon.o $(X64OBJS) x64/ansiconv.o
|
||||
$(LDmsg)$(CC) -m64 $+ -s -o $@ $(IVER)
|
||||
@@ -121,5 +121,5 @@ x64/util.o: version.h
|
||||
# Need two commands, because if the directory doesn't exist, it won't delete
|
||||
# anything at all.
|
||||
clean:
|
||||
- -cmd /c "del x86\*.o 2>nul"
|
||||
- -cmd /c "del x64\*.o 2>nul"
|
||||
+ rm -f x86\*.o
|
||||
+ rm -f x64\*.o
|
||||
--
|
||||
2.3.1
|
||||
|
||||
62
mingw-w64-ansicon-git/PKGBUILD
Normal file
62
mingw-w64-ansicon-git/PKGBUILD
Normal file
@@ -0,0 +1,62 @@
|
||||
# Maintainer: David Macek <david.macek.0@gmail.com>
|
||||
|
||||
_realname=ansicon
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
|
||||
pkgver=1.70.r65.3acc7a9
|
||||
pkgrel=2
|
||||
pkgdesc="Process ANSI escape sequences for Windows console programs (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://adoxa.altervista.org/ansicon/"
|
||||
license=("zlib")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"git")
|
||||
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
source=("git+https://github.com/adoxa/ansicon.git"
|
||||
"0001-Do-not-invoke-cmd-in-makefile.patch"
|
||||
"ansicon.bat")
|
||||
md5sums=('SKIP'
|
||||
'50d56e1bb2591b895305e0070b96699a'
|
||||
'f1d2f1358bf4a2140383a1327b8882ef')
|
||||
|
||||
pkgver() {
|
||||
cd ${srcdir}/${_realname}
|
||||
printf "%s.r%s.%s" "$(grep PVERSA version.h | sed -r 's/.*"(.+)".*/\1/')" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_realname}"
|
||||
patch -p1 -i "${srcdir}/0001-Do-not-invoke-cmd-in-makefile.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
local _bit
|
||||
case ${CARCH} in
|
||||
x86_64) _bit=64 ;;
|
||||
i686) _bit=32 ;;
|
||||
esac
|
||||
|
||||
cd "${srcdir}/${_realname}"
|
||||
ARCH=${_bit} make -f makefile.gcc
|
||||
}
|
||||
|
||||
package() {
|
||||
local _arch _bit
|
||||
case ${CARCH} in
|
||||
x86_64) _arch=64; _bit=64 ;;
|
||||
i686) _arch=86; _bit=32 ;;
|
||||
esac
|
||||
|
||||
cd "${srcdir}/${_realname}"
|
||||
|
||||
mkdir -p "${pkgdir}${MINGW_PREFIX}/bin"
|
||||
cp "${srcdir}/ansicon.bat" "${pkgdir}${MINGW_PREFIX}/bin"
|
||||
cp "x${_arch}/ansicon.exe" "${pkgdir}${MINGW_PREFIX}/bin/ansicon_x${_arch}.exe"
|
||||
cp "x${_arch}/ansi${_bit}.dll" "${pkgdir}${MINGW_PREFIX}/bin/ansi${_bit}.dll"
|
||||
|
||||
mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}"
|
||||
cp readme.* sequences.txt G1.* "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}"
|
||||
|
||||
mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
|
||||
cp LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
|
||||
}
|
||||
56
mingw-w64-ansicon-git/ansicon.bat
Normal file
56
mingw-w64-ansicon-git/ansicon.bat
Normal file
@@ -0,0 +1,56 @@
|
||||
::
|
||||
:: Copyright (c) 2012 Martin Ridgers
|
||||
::
|
||||
::
|
||||
:: Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
:: of this software and associated documentation files (the "Software"), to deal
|
||||
:: in the Software without restriction, including without limitation the rights
|
||||
:: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
:: copies of the Software, and to permit persons to whom the Software is
|
||||
:: furnished to do so, subject to the following conditions:
|
||||
::
|
||||
:: The above copyright notice and this permission notice shall be included in
|
||||
:: all copies or substantial portions of the Software.
|
||||
::
|
||||
:: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
:: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
:: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
:: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
:: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
:: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
:: SOFTWARE.
|
||||
::
|
||||
|
||||
@echo off
|
||||
|
||||
:: Pass through to appropriate loader.
|
||||
::
|
||||
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" (
|
||||
call :loader_x86 %*
|
||||
) else if /i "%PROCESSOR_ARCHITECTURE%"=="amd64" (
|
||||
call :loader_x64 %*
|
||||
)
|
||||
|
||||
:end
|
||||
goto :eof
|
||||
|
||||
:: Helper functions to avoid cmd.exe's issues with brackets.
|
||||
:loader_x86
|
||||
if exist "%~dp0../../mingw32/bin/%~n0_x86.exe" (
|
||||
"%~dp0../../mingw32/bin/%~n0_x86.exe" %*
|
||||
exit /b 0
|
||||
) else (
|
||||
echo Cannot find "%~dp0../../mingw32/bin/%~n0_x86.exe" >&2
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:loader_x64
|
||||
if exist "%~dp0../../mingw64/bin/%~n0_x64.exe" (
|
||||
"%~dp0../../mingw64/bin/%~n0_x64.exe" %*
|
||||
exit /b 0
|
||||
) else (
|
||||
echo Cannot find "%~dp0../../mingw64/bin/%~n0_x64.exe" >&2
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
exit /b 0
|
||||
@@ -0,0 +1,144 @@
|
||||
From 80bde3fbfa74a884b71e6900b9b0be79fbbce35b Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Schindelin <johannes.schindelin@gmx.de>
|
||||
Date: Thu, 1 Oct 2015 14:59:12 +0200
|
||||
Subject: [PATCH] Make antiword.exe relocatable on Windows
|
||||
|
||||
This change allows antiword to find its resource files relative to the
|
||||
executable file: it is expected to live in `<prefix>/bin/antiword.exe`
|
||||
and the resource files will be found in `<prefix>/share/antiword/`.
|
||||
|
||||
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
|
||||
---
|
||||
antiword.h | 1 +
|
||||
fonts_u.c | 2 +-
|
||||
misc.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
options.c | 17 +++--------------
|
||||
4 files changed, 68 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/antiword.h b/antiword.h
|
||||
index 3f4aad5..d24b640 100644
|
||||
--- a/antiword.h
|
||||
+++ b/antiword.h
|
||||
@@ -454,6 +454,7 @@ extern BOOL bAllZero(const UCHAR *, size_t);
|
||||
extern BOOL bGetNormalizedCodeset(char *, size_t, BOOL *);
|
||||
extern const char *szGetDefaultMappingFile(void);
|
||||
extern time_t tConvertDTTM(ULONG);
|
||||
+extern FILE *fOpenResource(const char *szFilename, const char *szSuffix);
|
||||
/* notes.c */
|
||||
extern void vDestroyNotesInfoLists(void);
|
||||
extern void vGetNotesInfo(FILE *, const pps_info_type *,
|
||||
diff --git a/fonts_u.c b/fonts_u.c
|
||||
index a99f7d2..280a7f2 100644
|
||||
--- a/fonts_u.c
|
||||
+++ b/fonts_u.c
|
||||
@@ -78,7 +78,7 @@ pOpenFontTableFile(void)
|
||||
szGlobalFile = GLOBAL_ANTIWORD_DIR FILE_SEPARATOR FONTNAMES_FILE;
|
||||
DBG_MSG(szGlobalFile);
|
||||
|
||||
- pFile = fopen(szGlobalFile, "r");
|
||||
+ pFile = fOpenResource(FONTNAMES_FILE, "r");
|
||||
if (pFile != NULL) {
|
||||
return pFile;
|
||||
}
|
||||
diff --git a/misc.c b/misc.c
|
||||
index 609a2f0..a9610d0 100644
|
||||
--- a/misc.c
|
||||
+++ b/misc.c
|
||||
@@ -892,3 +892,66 @@ tConvertDTTM(ULONG ulDTTM)
|
||||
NO_DBG_MSG(ctime(&tResult));
|
||||
return tResult;
|
||||
} /* end of tConvertDTTM */
|
||||
+
|
||||
+#ifdef __MINGW64_VERSION_MAJOR
|
||||
+#define WIN32_LEAN_AND_MEAN
|
||||
+#include <windows.h>
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * Opens an Antiword resource file
|
||||
+ *
|
||||
+ * returns the handle for the file, or NULL
|
||||
+ */
|
||||
+FILE
|
||||
+*fOpenResource(const char *szFilename, const char *szSuffix)
|
||||
+{
|
||||
+#ifndef __MINGW64_VERSION_MAJOR
|
||||
+ static char szPath[PATH_MAX+1];
|
||||
+
|
||||
+ snprintf(szPath, sizeof(szPath),
|
||||
+ GLOBAL_ANTIWORD_DIR FILE_SEPARATOR "%s%s",
|
||||
+ szFilename, szSuffix ? szSuffix : "");
|
||||
+#else
|
||||
+ static char szPath[32768];
|
||||
+ static size_t tPrefixLen = (size_t)-1;
|
||||
+
|
||||
+ if (tPrefixLen == (size_t)-1) {
|
||||
+ tPrefixLen = (size_t)
|
||||
+ GetModuleFileName(NULL, szPath, sizeof(szPath));
|
||||
+ if (tPrefixLen && tPrefixLen < sizeof(szPath)) {
|
||||
+ const char *dir = GLOBAL_ANTIWORD_DIR;
|
||||
+
|
||||
+ /* Strip suffix `antiword.exe` */
|
||||
+ while (tPrefixLen > 0 && szPath[tPrefixLen-1] != '\\') {
|
||||
+ tPrefixLen--;
|
||||
+ }
|
||||
+ /* Strip `bin/` directory */
|
||||
+ if (tPrefixLen > 5 && !memcmp(szPath+(tPrefixLen-5),
|
||||
+ "\\bin\\",5)) {
|
||||
+ tPrefixLen -= 4;
|
||||
+ }
|
||||
+ /* Append GLOBAL_ANTIWORD_DIR, skipping /usr/ or / */
|
||||
+ if (*dir && *dir == '/') {
|
||||
+ dir++;
|
||||
+ if (!memcmp(dir, "usr/", 4))
|
||||
+ dir += 4;
|
||||
+ }
|
||||
+ while (*dir && tPrefixLen < sizeof(szPath)-1) {
|
||||
+ char c = *(dir++);
|
||||
+ szPath[tPrefixLen++] = c == '/' ? '\\' : c;
|
||||
+ }
|
||||
+ /* Make sure the prefix ends in a file separator */
|
||||
+ if (tPrefixLen && tPrefixLen < sizeof(szPath)-1 &&
|
||||
+ szPath[tPrefixLen-1] != '\\') {
|
||||
+ szPath[tPrefixLen++] = '\\';
|
||||
+ }
|
||||
+ szPath[tPrefixLen]='\0';
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ snprintf(szPath + tPrefixLen, sizeof(szPath) - tPrefixLen,
|
||||
+ "%s%s", szFilename, szSuffix ? szSuffix : "");
|
||||
+#endif
|
||||
+ return fopen(szPath, "r");
|
||||
+} /* end of fOpenResource */
|
||||
diff --git a/options.c b/options.c
|
||||
index 8379fef..dd6ced9 100644
|
||||
--- a/options.c
|
||||
+++ b/options.c
|
||||
@@ -236,20 +236,9 @@ pOpenCharacterMappingFile(const char *szLeafname)
|
||||
}
|
||||
|
||||
/* Try the global version of the mapping file */
|
||||
- if (tFilenameLen <
|
||||
- sizeof(szMappingFile) -
|
||||
- sizeof(GLOBAL_ANTIWORD_DIR) -
|
||||
- sizeof(FILE_SEPARATOR)) {
|
||||
- sprintf(szMappingFile,
|
||||
- GLOBAL_ANTIWORD_DIR FILE_SEPARATOR "%s%s",
|
||||
- szLeafname, szSuffix);
|
||||
- DBG_MSG(szMappingFile);
|
||||
- pFile = fopen(szMappingFile, "r");
|
||||
- if (pFile != NULL) {
|
||||
- return pFile;
|
||||
- }
|
||||
- } else {
|
||||
- werr(0, "Global mappingfilename too long, ignored");
|
||||
+ pFile = fOpenResource(szLeafname, szSuffix);
|
||||
+ if (pFile != NULL) {
|
||||
+ return pFile;
|
||||
}
|
||||
werr(0, "I can't open your mapping file (%s%s)\n"
|
||||
"It is not in '%s" FILE_SEPARATOR ANTIWORD_DIR "' nor in '"
|
||||
--
|
||||
2.5.3.windows.1
|
||||
|
||||
66
mingw-w64-antiword/PKGBUILD
Normal file
66
mingw-w64-antiword/PKGBUILD
Normal file
@@ -0,0 +1,66 @@
|
||||
# Maintainer: Matthias Aßhauer <mha1993@live.de>
|
||||
|
||||
_realname=antiword
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
||||
pkgver=0.37
|
||||
pkgrel=2
|
||||
pkgdesc="Convert MS Word 2.0-2003 documents to plain text or PostScript (mingw-w64)"
|
||||
arch=('any')
|
||||
license=('GPL3+')
|
||||
url="http://www.winfield.demon.nl/"
|
||||
options=('strip')
|
||||
source=("http://www.winfield.demon.nl/linux/${_realname}-${pkgver}.tar.gz"
|
||||
"0001-Make-antiword.exe-relocatable-on-Windows.patch")
|
||||
md5sums=('f868e2a269edcbc06bf77e89a55898d1'
|
||||
'db9a6ceb7df5b16bcfe00fe856205d86')
|
||||
provides=("${_realname}")
|
||||
noextract=("${_realname}-${pkgver}.tar.gz")
|
||||
|
||||
prepare(){
|
||||
tar xzf "${_realname}-${pkgver}.tar.gz" || tar xzf "${_realname}-${pkgver}.tar.gz"
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
patch -p1 -i "${srcdir}/0001-Make-antiword.exe-relocatable-on-Windows.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
make -f Makefile.Linux clean
|
||||
make -f Makefile.Linux ${_realname}
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
install -D -m755 ${_realname}.exe ${pkgdir}${MINGW_PREFIX}/bin/${_realname}.exe
|
||||
install -D -m755 Resources/8859-1.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-1.txt
|
||||
install -D -m755 Resources/8859-2.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-2.txt
|
||||
install -D -m755 Resources/8859-3.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-3.txt
|
||||
install -D -m755 Resources/8859-4.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-4.txt
|
||||
install -D -m755 Resources/8859-5.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-5.txt
|
||||
install -D -m755 Resources/8859-6.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-6.txt
|
||||
install -D -m755 Resources/8859-7.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-7.txt
|
||||
install -D -m755 Resources/8859-8.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-8.txt
|
||||
install -D -m755 Resources/8859-9.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-9.txt
|
||||
install -D -m755 Resources/8859-10.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-10.txt
|
||||
install -D -m755 Resources/8859-11.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-11.txt
|
||||
install -D -m755 Resources/8859-13.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-13.txt
|
||||
install -D -m755 Resources/8859-14.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-14.txt
|
||||
install -D -m755 Resources/8859-15.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-15.txt
|
||||
install -D -m755 Resources/8859-16.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-16.txt
|
||||
install -D -m755 Resources/cp437.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp437.txt
|
||||
install -D -m755 Resources/cp850.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp850.txt
|
||||
install -D -m755 Resources/cp852.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp852.txt
|
||||
install -D -m755 Resources/cp862.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp862.txt
|
||||
install -D -m755 Resources/cp864.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp864.txt
|
||||
install -D -m755 Resources/cp866.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp866.txt
|
||||
install -D -m755 Resources/cp1250.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1250.txt
|
||||
install -D -m755 Resources/cp1251.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1251.txt
|
||||
install -D -m755 Resources/cp1252.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1252.txt
|
||||
install -D -m755 Resources/koi8-r.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/koi8-r.txt
|
||||
install -D -m755 Resources/koi8-u.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/koi8-u.txt
|
||||
install -D -m755 Resources/MacCyrillic.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/MacCyrillic.txt
|
||||
install -D -m755 Resources/MacRoman.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/MacRoman.txt
|
||||
install -D -m755 Resources/roman.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/roman.txt
|
||||
install -D -m755 Resources/UTF-8.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/UTF-8.txt
|
||||
install -D -m755 Resources/fontnames ${pkgdir}${MINGW_PREFIX}/share/${_realname}/fontnames
|
||||
}
|
||||
57
mingw-w64-apr-util/PKGBUILD
Normal file
57
mingw-w64-apr-util/PKGBUILD
Normal file
@@ -0,0 +1,57 @@
|
||||
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
||||
|
||||
_realname=apr-util
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.5.4
|
||||
pkgrel=2
|
||||
pkgdesc="The Apache Portable Runtime (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://apr.apache.org/"
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-apr"
|
||||
"${MINGW_PACKAGE_PREFIX}-expat"
|
||||
"${MINGW_PACKAGE_PREFIX}-sqlite3")
|
||||
options=('!libtool')
|
||||
license=('APACHE')
|
||||
source=(http://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc}
|
||||
plugins.patch)
|
||||
md5sums=('2202b18f269ad606d70e1864857ed93c'
|
||||
'SKIP'
|
||||
'9db9f3c4b14749988e9133aaa0658fcd')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
patch -p1 -i ${srcdir}/plugins.patch
|
||||
#./buildconf --with-apr=${MINGW_PREFIX}
|
||||
autoreconf -fi
|
||||
}
|
||||
|
||||
build() {
|
||||
[[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
|
||||
mkdir -p build-${MINGW_CHOST}
|
||||
cd build-${MINGW_CHOST}
|
||||
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--target=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--with-apr=${MINGW_PREFIX} \
|
||||
--with-expat=${MINGW_PREFIX} \
|
||||
--without-gdbm \
|
||||
--without-ldap \
|
||||
--without-pgsql \
|
||||
--with-sqlite3=${MINGW_PREFIX}
|
||||
|
||||
make -j1
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make -j1 check
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
||||
36
mingw-w64-apr-util/plugins.patch
Normal file
36
mingw-w64-apr-util/plugins.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
|
||||
From: David Rothenberger <d.rothenberger@entomo.com>
|
||||
|
||||
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
ldap/apr_ldap_stub.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 963fead..c9827de 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -23,7 +23,7 @@ INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
APU_MODULES = @APU_MODULES@
|
||||
-LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
|
||||
+LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -no-undefined -rpath $(APU_DSO_LIBDIR) @abs_builddir@/lib@APRUTIL_LIBNAME@.la $(APRUTIL_LIBS)
|
||||
APU_DSO_LIBDIR = @APU_DSO_LIBDIR@
|
||||
|
||||
LT_VERSION = @APU_LTVERSION@
|
||||
diff --git a/ldap/apr_ldap_stub.c b/ldap/apr_ldap_stub.c
|
||||
index 97c1551..9df76b7 100644
|
||||
--- a/ldap/apr_ldap_stub.c
|
||||
+++ b/ldap/apr_ldap_stub.c
|
||||
@@ -45,7 +45,7 @@ static apr_status_t load_ldap(apr_pool_t *pool)
|
||||
return rv;
|
||||
}
|
||||
|
||||
-#if defined(WIN32)
|
||||
+#if defined(WIN32) || defined(__CYGWIN__)
|
||||
modname = "apr_ldap-" APU_STRINGIFY(APU_MAJOR_VERSION) ".dll";
|
||||
#else
|
||||
modname = "apr_ldap-" APU_STRINGIFY(APU_MAJOR_VERSION) ".so";
|
||||
55
mingw-w64-apr/PKGBUILD
Normal file
55
mingw-w64-apr/PKGBUILD
Normal file
@@ -0,0 +1,55 @@
|
||||
# Maintainer: Drew Waranis <drew@waran.is>
|
||||
|
||||
_realname=apr
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.5.2
|
||||
pkgrel=2
|
||||
pkgdesc="The Apache Portable Runtime (mingw-w64)"
|
||||
arch=('any')
|
||||
url="https://apr.apache.org/"
|
||||
license=('APACHE')
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool")
|
||||
source=(http://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc}
|
||||
'apr_ssize_t.patch'
|
||||
'apr_wtypes.patch')
|
||||
md5sums=('4e9769f3349fe11fc0a5e1b224c236aa'
|
||||
'SKIP'
|
||||
'b91081b97f838246446c5795371faf6a'
|
||||
'0326d335f035f8f13dea4296efb1faab')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
|
||||
patch -p0 -i ${srcdir}/apr_ssize_t.patch
|
||||
patch -p0 -i ${srcdir}/apr_wtypes.patch
|
||||
|
||||
./buildconf
|
||||
# autoreconf -fi
|
||||
}
|
||||
|
||||
build() {
|
||||
[[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
|
||||
mkdir -p build-${MINGW_CHOST}
|
||||
cd build-${MINGW_CHOST}
|
||||
|
||||
# Disable IPv6.
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix="${MINGW_PREFIX}" \
|
||||
--includedir="${MINGW_PREFIX}/include/apr-1" \
|
||||
--with-installbuilddir="${MINGW_PREFIX}/share/apr-1/build" \
|
||||
--enable-nonportable-atomics \
|
||||
--with-devrandom=/dev/urandom \
|
||||
--disable-ipv6
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
#check() {
|
||||
# cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
# make -j1 check
|
||||
#}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
}
|
||||
24
mingw-w64-apr/apr_ssize_t.patch
Normal file
24
mingw-w64-apr/apr_ssize_t.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
Index: configure.in
|
||||
===================================================================
|
||||
--- configure.in (revision 1161414)
|
||||
+++ configure.in (working copy)
|
||||
@@ -1643,6 +1643,9 @@
|
||||
elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
|
||||
ssize_t_fmt="ld"
|
||||
AC_MSG_RESULT(%ld)
|
||||
+elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long_long"; then
|
||||
+ ssize_t_fmt="lld"
|
||||
+ AC_MSG_RESULT(%lld)
|
||||
else
|
||||
AC_ERROR([could not determine the proper format for apr_ssize_t])
|
||||
fi
|
||||
@@ -1660,6 +1663,9 @@
|
||||
elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
|
||||
size_t_fmt="ld"
|
||||
AC_MSG_RESULT(%ld)
|
||||
+elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long_long"; then
|
||||
+ size_t_fmt="lld"
|
||||
+ AC_MSG_RESULT(%lld)
|
||||
else
|
||||
AC_ERROR([could not determine the proper format for apr_size_t])
|
||||
fi
|
||||
30
mingw-w64-apr/apr_wtypes.patch
Normal file
30
mingw-w64-apr/apr_wtypes.patch
Normal file
@@ -0,0 +1,30 @@
|
||||
--- include/arch/win32/apr_private.h.orig 2014-07-03 14:34:47 -0500
|
||||
+++ include/arch/win32/apr_private.h 2014-07-03 14:35:51 -0500
|
||||
@@ -45,13 +45,9 @@
|
||||
*/
|
||||
#ifndef _WIN32_WCE
|
||||
#define HAVE_ACLAPI 1
|
||||
-#ifdef __wtypes_h__
|
||||
+#define COM_NO_WINDOWS_H
|
||||
#include <accctrl.h>
|
||||
-#else
|
||||
-#define __wtypes_h__
|
||||
-#include <accctrl.h>
|
||||
-#undef __wtypes_h__
|
||||
-#endif
|
||||
+#undef COM_NO_WINDOWS_H
|
||||
#else
|
||||
#define HAVE_ACLAPI 0
|
||||
#endif
|
||||
--- file_io/win32/filestat.c.orig 2014-07-03 14:42:41 -0500
|
||||
+++ file_io/win32/filestat.c 2014-07-03 14:43:09 -0500
|
||||
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
|
||||
#include "apr.h"
|
||||
+#define COM_NO_WINDOWS_H
|
||||
#include <aclapi.h>
|
||||
+#undef COM_NO_WINDOWS_H
|
||||
#include "apr_private.h"
|
||||
#include "apr_arch_file_io.h"
|
||||
#include "apr_file_io.h"
|
||||
@@ -1,12 +0,0 @@
|
||||
--- src/OutputFile.h.orig 2014-09-11 18:24:10.000000000 +0200
|
||||
+++ src/OutputFile.h 2014-10-05 03:19:06.818377800 +0200
|
||||
@@ -40,6 +40,9 @@
|
||||
#include <cstdlib>
|
||||
#include <cstdarg>
|
||||
|
||||
+// include <string> just to cancel libintl's #define vprintf libintl_vprintf
|
||||
+#include <string>
|
||||
+
|
||||
namespace aria2 {
|
||||
|
||||
class OutputFile {
|
||||
@@ -1,50 +1,46 @@
|
||||
# Maintainer: David Macek <david.macek.0@gmail.com>
|
||||
|
||||
_realname=aria2
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.18.8
|
||||
pkgrel=2
|
||||
pkgver=1.19.2
|
||||
pkgrel=1
|
||||
pkgdesc="A multi-protocol & multi-source, cross platform download utility (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://aria2.sourceforge.net/"
|
||||
license=('GPL2')
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config"
|
||||
"${MINGW_PACKAGE_PREFIX}-gcc")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-pkg-config")
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
||||
"${MINGW_PACKAGE_PREFIX}-gettext"
|
||||
"${MINGW_PACKAGE_PREFIX}-c-ares"
|
||||
"${MINGW_PACKAGE_PREFIX}-cppunit"
|
||||
"${MINGW_PACKAGE_PREFIX}-libiconv"
|
||||
"${MINGW_PACKAGE_PREFIX}-libssh2"
|
||||
"${MINGW_PACKAGE_PREFIX}-libuv"
|
||||
"${MINGW_PACKAGE_PREFIX}-libxml2"
|
||||
"${MINGW_PACKAGE_PREFIX}-openssl"
|
||||
"${MINGW_PACKAGE_PREFIX}-sqlite3"
|
||||
"${MINGW_PACKAGE_PREFIX}-gmp"
|
||||
"${MINGW_PACKAGE_PREFIX}-nettle"
|
||||
"${MINGW_PACKAGE_PREFIX}-libxml2"
|
||||
"${MINGW_PACKAGE_PREFIX}-libgcrypt"
|
||||
"${MINGW_PACKAGE_PREFIX}-libiconv"
|
||||
"${MINGW_PACKAGE_PREFIX}-expat"
|
||||
"${MINGW_PACKAGE_PREFIX}-zlib"
|
||||
"${MINGW_PACKAGE_PREFIX}-libuv")
|
||||
optdepends=(
|
||||
"${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon")
|
||||
source=("http://sourceforge.net/projects/aria2/files/stable/$_realname-$pkgver/$_realname-$pkgver.tar.xz"
|
||||
'0001-libintl-vprintf.patch')
|
||||
md5sums=('3e03b8a6faf36fd76e6ffb58b5d6f6a5'
|
||||
'67473d1562bce194b78e64f67adff650')
|
||||
)
|
||||
optdepends=("${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon")
|
||||
source=(${_realname}-${pkgver}.tar.gz::https://github.com/tatsuhiro-t/aria2/archive/release-${pkgver}.tar.gz)
|
||||
md5sums=('38e18cb9856bc592c5fc8c2dd687bf38')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}"/${_realname}-${pkgver}
|
||||
patch -p0 -i "${srcdir}"/0001-libintl-vprintf.patch
|
||||
cd "${_realname}-release-${pkgver}"
|
||||
autoreconf -fiv
|
||||
}
|
||||
|
||||
build() {
|
||||
mkdir -p "${srcdir}"/build-${CARCH}
|
||||
cd "${srcdir}"/build-${CARCH}
|
||||
|
||||
# add missing library
|
||||
export LIBS=-lintl
|
||||
[[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
|
||||
mkdir -p build-${MINGW_CHOST}
|
||||
cd build-${MINGW_CHOST}
|
||||
|
||||
# disabling gnutls and wintls so we will fall back to openssl
|
||||
../${_realname}-${pkgver}/configure \
|
||||
../${_realname}-release-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--with-bashcompletiondir=${MINGW_PREFIX}/share/bash-completion/completions \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-static \
|
||||
@@ -52,15 +48,19 @@ build() {
|
||||
--without-gnutls \
|
||||
--without-wintls \
|
||||
--enable-libaria2
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}"/build-${CARCH}
|
||||
cd "build-${MINGW_CHOST}"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
cd "${srcdir}"/${_realname}-${pkgver}
|
||||
|
||||
cd "../${_realname}-release-${pkgver}"
|
||||
|
||||
install -Dm0755 doc/xmlrpc/aria2rpc "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc
|
||||
install -Dm0755 doc/xmlrpc/aria2mon "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon
|
||||
echo '@ruby -- "%~dp0aria2rpc" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc.cmd
|
||||
echo '@ruby -- "%~dp0aria2mon" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon.cmd
|
||||
rm ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/xmlrpc/aria2{rpc,mon}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
_realname=aribb24
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.0.3
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
pkgdesc="A library for ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream (mingw-w64)"
|
||||
arch=('any')
|
||||
url="https://github.com/nkoriyama/aribb24"
|
||||
@@ -25,16 +25,17 @@ prepare() {
|
||||
build() {
|
||||
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
"${srcdir}"/${_realname}-${pkgver}/configure \
|
||||
../${_realname}-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--build=${MINGW_CHOST} \
|
||||
--host=${MINGW_CHOST} \
|
||||
--enable-static \
|
||||
--enable-shared
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make -j1 DESTDIR="$pkgdir" install
|
||||
make -j1 DESTDIR="${pkgdir}" install
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ build() {
|
||||
--disable-nls \
|
||||
CFLAGS="${NEWLIB_CFLAGS}" \
|
||||
PATH="${armgccpath}:${PATH}"
|
||||
make PATH="${armgccpath}:${PATH}"
|
||||
make PATH="${armgccpath}:${PATH}"
|
||||
}
|
||||
|
||||
package() {
|
||||
|
||||
23
mingw-w64-armadillo/0001-mingw-config-fix.patch
Normal file
23
mingw-w64-armadillo/0001-mingw-config-fix.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
diff -Naur a/include/armadillo_bits/config.hpp.cmake b/include/armadillo_bits/config.hpp.cmake
|
||||
--- a/include/armadillo_bits/config.hpp.cmake 2015-04-10 11:54:47.000000000 +0600
|
||||
+++ b/include/armadillo_bits/config.hpp.cmake 2015-05-17 14:14:07.119929900 +0600
|
||||
@@ -6,7 +6,18 @@
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
-
|
||||
+#if defined(_WIN64)
|
||||
+ #if !defined(ARMA_BLAS_LONG) && !defined(ARMA_BLAS_LONG_LONG)
|
||||
+ #define ARMA_BLAS_LONG_LONG
|
||||
+ #endif
|
||||
+ #if !defined(ARMA_64BIT_WORD)
|
||||
+ #define ARMA_64BIT_WORD
|
||||
+ #endif
|
||||
+#elif defined(_WIN32)
|
||||
+ #if !defined(ARMA_32BIT_WORD)
|
||||
+ #define ARMA_32BIT_WORD
|
||||
+ #endif
|
||||
+#endif
|
||||
|
||||
#if !defined(ARMA_USE_LAPACK)
|
||||
#cmakedefine ARMA_USE_LAPACK
|
||||
58
mingw-w64-armadillo/PKGBUILD
Normal file
58
mingw-w64-armadillo/PKGBUILD
Normal file
@@ -0,0 +1,58 @@
|
||||
# Maintainer: Hurcan Solter <hsolter@gmail.com>
|
||||
|
||||
_realname=armadillo
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=6.200.4
|
||||
pkgrel=1
|
||||
pkgdesc="C++ linear algebra library (mingw-w64)"
|
||||
arch=('any')
|
||||
url="http://arma.sourceforge.net/"
|
||||
license=(MPL2)
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
||||
"${MINGW_PACKAGE_PREFIX}-openblas")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"${MINGW_PACKAGE_PREFIX}-cmake")
|
||||
install=${_realname}-${CARCH}.install
|
||||
source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz
|
||||
0001-mingw-config-fix.patch)
|
||||
md5sums=('20c9de6ad06b4339a7fd3f67d78922e4'
|
||||
'5ce663ba53e15ee85fcd7a0b01006672')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_realname}-${pkgver}"
|
||||
patch -Np1 -i "${srcdir}/0001-mingw-config-fix.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
[[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
|
||||
mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST}
|
||||
|
||||
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
||||
${MINGW_PREFIX}/bin/cmake.exe \
|
||||
-G"MSYS Makefiles" \
|
||||
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLAPACK_NAMES=openblas \
|
||||
../${_realname}-${pkgver}
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/build-${MINGW_CHOST}"
|
||||
make DESTDIR=${pkgdir} install
|
||||
|
||||
#local _INSTALL_PREFIX_WIN="$(cygpath -am "${pkgdir}${MINGW_PREFIX}")"
|
||||
#local _MINGW_PREFIX_WIN="$(cygpath -am "${MINGW_PREFIX}")"
|
||||
|
||||
#sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \
|
||||
# -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/share/Armadillo/CMake/"*.cmake
|
||||
|
||||
install -d ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}
|
||||
install -m644 "${srcdir}/${_realname}-${pkgver}/"*{.html,.png,.pdf,README.txt} \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/"
|
||||
|
||||
install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" \
|
||||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.txt"
|
||||
}
|
||||
9
mingw-w64-armadillo/armadillo-i686.install
Normal file
9
mingw-w64-armadillo/armadillo-i686.install
Normal file
@@ -0,0 +1,9 @@
|
||||
post_install() {
|
||||
local _prefix="/mingw32"
|
||||
local _prefix_win="$(cygpath -m "${_prefix}")"
|
||||
sed -s "s|${_prefix}|${_prefix_win}|g" -i "${_prefix}/share/Armadillo/CMake/"*.cmake
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
post_install
|
||||
}
|
||||
9
mingw-w64-armadillo/armadillo-x86_64.install
Normal file
9
mingw-w64-armadillo/armadillo-x86_64.install
Normal file
@@ -0,0 +1,9 @@
|
||||
post_install() {
|
||||
local _prefix="/mingw64"
|
||||
local _prefix_win="$(cygpath -m "${_prefix}")"
|
||||
sed -s "s|${_prefix}|${_prefix_win}|g" -i "${_prefix}/share/Armadillo/CMake/"*.cmake
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
post_install
|
||||
}
|
||||
42
mingw-w64-arpack/PKGBUILD
Normal file
42
mingw-w64-arpack/PKGBUILD
Normal file
@@ -0,0 +1,42 @@
|
||||
# $Id$
|
||||
# Maintainer (ArchLinux): Alexander Rødseth <rodseth@gmail.com>
|
||||
# Contributor (ArchLinux): William Rea <sillywilly@gmail.com>
|
||||
# Contributor (ArchLinux): Stefan Husmann <stefan-husmann@t-online.de>
|
||||
# Maintainer (MSYS2): Ray Donnelly <mingw.android@gmail.com>
|
||||
|
||||
_realname=arpack
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=3.2.0
|
||||
pkgrel=1
|
||||
arch=('any')
|
||||
pkgdesc='Fortran77 subroutines designed to solve large scale eigenvalue problems (mingw-w64)'
|
||||
url='http://forge.scilab.org/index.php/p/arpack-ng/'
|
||||
license=('BSD')
|
||||
depends=("${MINGW_PACKAGE_PREFIX}-openblas")
|
||||
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran")
|
||||
provides=("${MINGW_PACKAGE_PREFIX}-arpack-ng")
|
||||
source=(#"http://forge.scilab.org/upload/$_realname-ng/files/$_realname-ng_${pkgver}.tar.gz"
|
||||
${_realname}-${pkgver}.tar.gz::https://github.com/opencollab/arpack-ng/archive/${pkgver}.tar.gz)
|
||||
sha256sums=('ce6de85d8de6ae3a741fb9d6169c194ff1b2ffdab289f7af8e41d71bb7818cbb')
|
||||
|
||||
build() {
|
||||
[ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH}
|
||||
mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
|
||||
|
||||
../${_realname}-ng-${pkgver}/configure \
|
||||
--prefix=${MINGW_PREFIX} \
|
||||
--with-blas=openblas \
|
||||
--disable-mpi
|
||||
|
||||
make F77="gfortran"
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "${srcdir}"/build-${CARCH}
|
||||
|
||||
make DESTDIR="${pkgdir}"/ install
|
||||
install -Dm644 ${srcdir}/${_realname}-ng-${pkgver}/COPYING \
|
||||
${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
|
||||
}
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user