Merge remote-tracking branch 'refs/remotes/Alexpux/master'

This commit is contained in:
TinoM
2016-01-04 18:58:00 +01:00
2382 changed files with 133368 additions and 40869 deletions

3
.gitattributes vendored
View File

@@ -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
View File

@@ -1,5 +1,9 @@
*.tar.xz
*.tar.gz
*.tar.bz2
*.tgz
*.zip
*.rar
*.sig
*/src/
*/pkg/

48
FAIL_LIST.md Normal file
View 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

View File

@@ -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

View File

@@ -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
// --------------------------------------------------------------------------

View File

@@ -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)

View File

@@ -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

View 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);

View 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)

View 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

View File

@@ -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/
}

View File

@@ -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
}

View File

@@ -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 \

View 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

View File

@@ -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
}

View 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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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
}

View File

@@ -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
}

View 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);
}
}
}

View File

@@ -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

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}

View 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"`
;;
*)

View File

@@ -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"
}

View File

@@ -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
}

View File

@@ -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
}

View 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"
}

View 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"
}

View 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"
}

View 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"`
;;
*)

View 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);
}

View 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)

View 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();

View 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;

View 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"
}

View 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"
}

View File

@@ -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

View File

@@ -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/"
}

View File

@@ -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
}

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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
View 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
}

View File

@@ -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
}

View 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);

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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/
}

View File

@@ -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

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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;

View File

@@ -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'
+ ]
},
],
}

View 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

View 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

View File

@@ -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

View 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}"
}

View 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

View File

@@ -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

View 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
}

View 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
}

View 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
View 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
}

View 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

View 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"

View File

@@ -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 {

View File

@@ -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}
}

View File

@@ -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
}

View File

@@ -123,7 +123,7 @@ build() {
--disable-nls \
CFLAGS="${NEWLIB_CFLAGS}" \
PATH="${armgccpath}:${PATH}"
make PATH="${armgccpath}:${PATH}"
make PATH="${armgccpath}:${PATH}"
}
package() {

View 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

View 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"
}

View 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
}

View 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
View 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