diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2013-10-17 01:22:19 +0200 |
---|---|---|
committer | Björn Michaelsen <bjoern.michaelsen@canonical.com> | 2013-10-17 10:44:03 +0000 |
commit | 214fc9134176c79c701ce90dc252738d8038e01f (patch) | |
tree | ff0b5f6add09a444f19ef0c99c580409e55b6a98 /external/cairo | |
parent | fdo#70393: move beanshell to a subdir of external (diff) | |
download | core-214fc9134176c79c701ce90dc252738d8038e01f.tar.gz core-214fc9134176c79c701ce90dc252738d8038e01f.zip |
fdo#70393: move cairo to a subdir of external
Change-Id: I5a5d43521d3d7227dadd05525e2c69c63a3f1c1b
Reviewed-on: https://gerrit.libreoffice.org/6284
Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Tested-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
Diffstat (limited to 'external/cairo')
21 files changed, 844 insertions, 0 deletions
diff --git a/external/cairo/ExternalPackage_cairo.mk b/external/cairo/ExternalPackage_cairo.mk new file mode 100644 index 000000000000..9be4caa73d14 --- /dev/null +++ b/external/cairo/ExternalPackage_cairo.mk @@ -0,0 +1,17 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_ExternalPackage_ExternalPackage,cairo,cairo)) + +$(eval $(call gb_ExternalPackage_use_external_project,cairo,cairo)) + +$(eval $(call gb_ExternalPackage_add_file,cairo,lib/libcairo.so,src/.libs/libcairo.so.2.11000.2)) +$(eval $(call gb_ExternalPackage_add_library_for_install,cairo,lib/libcairo.so.2,src/.libs/libcairo.so.2.11000.2)) + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/ExternalPackage_pixman.mk b/external/cairo/ExternalPackage_pixman.mk new file mode 100644 index 000000000000..3ce67f5e24eb --- /dev/null +++ b/external/cairo/ExternalPackage_pixman.mk @@ -0,0 +1,17 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_ExternalPackage_ExternalPackage,pixman,pixman)) + +$(eval $(call gb_ExternalPackage_use_external_project,pixman,pixman)) + +$(eval $(call gb_ExternalPackage_add_file,pixman,lib/libpixman-1.so,pixman/.libs/libpixman-1.so.0.24.4)) +$(eval $(call gb_ExternalPackage_add_library_for_install,pixman,lib/libpixman-1.so.0,pixman/.libs/libpixman-1.so.0.24.4)) + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/ExternalProject_cairo.mk b/external/cairo/ExternalProject_cairo.mk new file mode 100644 index 000000000000..90420f63dde3 --- /dev/null +++ b/external/cairo/ExternalProject_cairo.mk @@ -0,0 +1,57 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,cairo)) + +$(eval $(call gb_ExternalProject_use_external_project,cairo,pixman)) + +$(eval $(call gb_ExternalProject_register_targets,cairo,\ + build \ +)) + +ifeq ($(OS)$(COM),WNTMSC) + +$(call gb_ExternalProject_get_state_target,cairo,build) : + $(call gb_ExternalProject_run,build,\ + $(MAKE) -f Makefile.win32 CFG=release ZLIB3RDLIB=zlib.lib \ + ) + + +else + +# overwrite src/cairo-version.h because that is just a dummy file and included +# from cairo.h in non-overridable way + +$(call gb_ExternalProject_get_state_target,cairo,build) : + $(call gb_ExternalProject_run,build,\ + ./configure \ + $(if $(debug),STRIP=" ") \ + CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS)" \ + $(if $(filter ANDROID IOS,$(OS)),PKG_CONFIG=./dummy_pkg_config) \ + pixman_CFLAGS="-I$(call gb_UnpackedTarball_get_dir,pixman)/pixman" \ + pixman_LIBS="-L$(call gb_UnpackedTarball_get_dir,pixman)/pixman/.libs -lpixman-1" \ + COMPRESS=$(if $(filter YES,$(SYSTEM_ZLIB)),compress,z_compress) \ + ZLIB3RDLIB="$(if $(filter YES,$(SYSTEM_ZLIB)),,-L$(WORKDIR)/LinkTarget/StaticLibrary) -lz" \ + png_REQUIRES="trick_configure_into_using_png_CFLAGS_and_LIBS" \ + png_CFLAGS="$(LIBPNG_CFLAGS)" png_LIBS="$(LIBPNG_LIBS)" \ + $(if $(filter IOS,$(OS)),--disable-shared,--disable-static) \ + $(if $(filter ANDROID IOS,$(OS)),--disable-xlib,--enable-xlib) \ + $(if $(filter IOS,$(OS)),--enable-quartz --enable-quartz-font) \ + --disable-valgrind \ + $(if $(filter IOS,$(OS)),--disable-ft,--enable-ft --enable-fc) \ + --disable-svg --enable-gtk-doc=no --enable-test-surfaces=no \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ + $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \ + && cp cairo-version.h src/cairo-version.h \ + && cd src && $(MAKE) \ + ) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/ExternalProject_pixman.mk b/external/cairo/ExternalProject_pixman.mk new file mode 100644 index 000000000000..80e62fa89190 --- /dev/null +++ b/external/cairo/ExternalProject_pixman.mk @@ -0,0 +1,43 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,pixman)) + +$(eval $(call gb_ExternalProject_register_targets,pixman,\ + build \ +)) + +ifeq ($(OS)$(COM),WNTMSC) + +$(call gb_ExternalProject_get_state_target,pixman,build) : + $(call gb_ExternalProject_run,build,\ + $(MAKE) -f Makefile.win32 MMX=on SSE2=on CFG=release \ + ,pixman) + +else + +# ANDROID: +# The pixman-cpu.c code wants to read /proc/<pid>/auxv, but +# the Android headers don't define Elf32_auxv_t. +# +# Maybe we should instead just patch the arm_has_* booleans in +# pixman-cpu.c to be hardcoded as TRUE and patch out the run-time +# check? +$(call gb_ExternalProject_get_state_target,pixman,build) : + $(call gb_ExternalProject_run,build,\ + ./configure \ + $(if $(filter MACOSX IOS,$(OS)),--disable-shared,--disable-static) \ + $(if $(filter ANDROID,$(OS)),--disable-arm-simd --disable-arm-neon --disable-arm-iwmmxt) \ + $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ + && $(MAKE) \ + ) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/Makefile b/external/cairo/Makefile new file mode 100644 index 000000000000..ccb1c85a04da --- /dev/null +++ b/external/cairo/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/Module_cairo.mk b/external/cairo/Module_cairo.mk new file mode 100644 index 000000000000..6d8a29add558 --- /dev/null +++ b/external/cairo/Module_cairo.mk @@ -0,0 +1,21 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_Module_Module,cairo)) + +$(eval $(call gb_Module_add_targets,cairo,\ + ExternalPackage_cairo \ + ExternalPackage_pixman \ + ExternalProject_cairo \ + ExternalProject_pixman \ + UnpackedTarball_cairo \ + UnpackedTarball_pixman \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/README b/external/cairo/README new file mode 100644 index 000000000000..3d955dcd09a4 --- /dev/null +++ b/external/cairo/README @@ -0,0 +1,6 @@ +The graphics library, used for anti-aliasing. From [http://cairographics.org/]. + +This code is used by default only on Linux, though it is also +available on Mac. There is a cairo-canvas implementation that is the +main customer, and it is enabled via 'use hardware acceleration' in +the general options. diff --git a/external/cairo/UnpackedTarball_cairo.mk b/external/cairo/UnpackedTarball_cairo.mk new file mode 100644 index 000000000000..35c8357c5edb --- /dev/null +++ b/external/cairo/UnpackedTarball_cairo.mk @@ -0,0 +1,50 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,cairo)) + +$(eval $(call gb_UnpackedTarball_set_tarball,cairo,$(CAIRO_TARBALL),,cairo)) + +$(eval $(call gb_UnpackedTarball_add_patches,cairo,\ + external/cairo/cairo/cairo-1.10.2.patch \ + external/cairo/cairo/cairo.dlsym.lcdfilter.patch \ + external/cairo/cairo/cairo-1.10.2-oldfontconfig.patch \ +)) + +ifeq ($(OS)$(COM),WNTMSC) +$(eval $(call gb_UnpackedTarball_add_patches,cairo,\ + external/cairo/cairo/cairo-1.10.2.wntmsc.patch \ +)) +endif + +# FIXME add cairo/cairo/cairo-1.10.2.no-atsui.patch for MACOSX >= 1070 +ifeq ($(OS),IOS) +$(eval $(call gb_UnpackedTarball_add_patches,cairo,\ + external/cairo/cairo/cairo-1.10.2.no-atsui.patch \ + external/cairo/cairo/cairo-1.10.2.ios.patch \ +)) +endif + +ifeq ($(OS),ANDROID) +$(eval $(call gb_UnpackedTarball_add_patches,cairo,\ + external/cairo/cairo/cairo-1.10.2.android.patch \ +)) +endif + +ifneq (,$(filter ANDROID IOS,$(OS))) +$(eval $(call gb_UnpackedTarball_add_file,cairo,.,external/cairo/cairo/dummy_pkg_config)) +endif + +ifeq ($(COM_GCC_IS_CLANG),TRUE) +$(eval $(call gb_UnpackedTarball_add_patches,cairo,\ + external/cairo/cairo/no-flto-clang.patch \ +)) +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/UnpackedTarball_pixman.mk b/external/cairo/UnpackedTarball_pixman.mk new file mode 100644 index 000000000000..1e12550f2895 --- /dev/null +++ b/external/cairo/UnpackedTarball_pixman.mk @@ -0,0 +1,28 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# 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/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,pixman)) + +$(eval $(call gb_UnpackedTarball_set_tarball,pixman,$(PIXMAN_TARBALL),,cairo)) + +$(eval $(call gb_UnpackedTarball_add_patches,pixman,\ + external/cairo/pixman/pixman-0.24.4.patch \ +)) + +ifeq ($(OS),ANDROID) +$(eval $(call gb_UnpackedTarball_add_patches,pixman,\ + external/cairo/pixman/pixman-0.24.4.android.patch \ +)) +endif + +ifeq ($(OS)$(COM),WNTMSC) +$(eval $(call gb_UnpackedTarball_add_file,pixman,pixman,external/cairo/pixman/Makefile.win32.common)) +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/cairo/cairo/cairo-1.10.2-oldfontconfig.patch b/external/cairo/cairo/cairo-1.10.2-oldfontconfig.patch new file mode 100644 index 000000000000..d19258aef753 --- /dev/null +++ b/external/cairo/cairo/cairo-1.10.2-oldfontconfig.patch @@ -0,0 +1,11 @@ +--- misc/cairo-1.10.2/configure 2012-02-20 23:25:52.000000000 -0800 ++++ misc/build/cairo-1.10.2/configure 2012-02-20 11:53:05.000000000 -0800 +@@ -29672,7 +29672,7 @@ + fi + + +-FONTCONFIG_MIN_VERSION=2.2.95 ++FONTCONFIG_MIN_VERSION=2.2.3 + # Check whether --enable-fc was given. + if test "${enable_fc+set}" = set; then : + enableval=$enable_fc; enable_fc=$enableval diff --git a/external/cairo/cairo/cairo-1.10.2.android.patch b/external/cairo/cairo/cairo-1.10.2.android.patch new file mode 100644 index 000000000000..e894063f0d92 --- /dev/null +++ b/external/cairo/cairo/cairo-1.10.2.android.patch @@ -0,0 +1,13 @@ +--- misc/cairo-1.10.2/build/ltmain.sh ++++ misc/build/cairo-1.10.2/build/ltmain.sh +@@ -3228,6 +3228,10 @@ + func_warning "\`-release' is ignored for convenience libraries" + else + ++ # Force no versioning suffix for Android ++ ++ version_type=none ++ + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 diff --git a/external/cairo/cairo/cairo-1.10.2.ios.patch b/external/cairo/cairo/cairo-1.10.2.ios.patch new file mode 100644 index 000000000000..c61faf333f0c --- /dev/null +++ b/external/cairo/cairo/cairo-1.10.2.ios.patch @@ -0,0 +1,27 @@ +--- misc/cairo-1.10.2/configure 2011-12-16 10:02:39.626077757 +0100 ++++ misc/build/cairo-1.10.2/configure 2011-12-16 10:02:23.518237109 +0100 +@@ -22766,11 +22766,13 @@ + + + ac_fn_c_check_header_mongrel "$LINENO" "ApplicationServices/ApplicationServices.h" "ac_cv_header_ApplicationServices_ApplicationServices_h" "$ac_includes_default" ++if false; then + if test "x$ac_cv_header_ApplicationServices_ApplicationServices_h" = x""yes; then : + + else + use_quartz="no (requires ApplicationServices framework)" + fi ++fi + + + if test "x$use_quartz" != "xyes" ; then +--- misc/cairo-1.10.2/src/cairo-quartz.h 2011-12-16 10:02:39.639079241 +0100 ++++ misc/build/cairo-1.10.2/src/cairo-quartz.h 2011-12-16 10:01:18.404789245 +0100 +@@ -40,7 +40,7 @@ + + #if CAIRO_HAS_QUARTZ_SURFACE + +-#include <ApplicationServices/ApplicationServices.h> ++#include <CoreGraphics/CoreGraphics.h> + + CAIRO_BEGIN_DECLS + diff --git a/external/cairo/cairo/cairo-1.10.2.no-atsui.patch b/external/cairo/cairo/cairo-1.10.2.no-atsui.patch new file mode 100644 index 000000000000..51b98afa59b9 --- /dev/null +++ b/external/cairo/cairo/cairo-1.10.2.no-atsui.patch @@ -0,0 +1,22 @@ +--- misc/cairo-1.10.2/src/cairo-quartz-font.c 2010-12-25 15:21:34.000000000 +0100 ++++ misc/build/cairo-1.10.2/src/cairo-quartz-font.c 2011-12-16 09:54:18.672445207 +0100 +@@ -777,7 +777,7 @@ + return ffont->cgFont; + } + +-#ifndef __LP64__ ++#if 0 + /* + * compat with old ATSUI backend + */ +--- misc/cairo-1.10.2/src/cairo-quartz.h 2010-06-18 13:47:13.000000000 +0200 ++++ misc/build/cairo-1.10.2/src/cairo-quartz.h 2011-12-16 09:52:53.081501547 +0100 +@@ -66,7 +66,7 @@ + cairo_public cairo_font_face_t * + cairo_quartz_font_face_create_for_cgfont (CGFontRef font); + +-#ifndef __LP64__ ++#if 0 + cairo_public cairo_font_face_t * + cairo_quartz_font_face_create_for_atsu_font_id (ATSUFontID font_id); + #endif diff --git a/external/cairo/cairo/cairo-1.10.2.patch b/external/cairo/cairo/cairo-1.10.2.patch new file mode 100644 index 000000000000..c3f7aa745149 --- /dev/null +++ b/external/cairo/cairo/cairo-1.10.2.patch @@ -0,0 +1,236 @@ +--- misc/cairo-1.10.2/build/Makefile.win32.features 2010-08-18 09:47:30.000000000 +0200 ++++ misc/build/cairo-1.10.2/build/Makefile.win32.features 2011-12-20 09:57:06.428170146 +0100 +@@ -30,7 +30,7 @@ + CAIRO_HAS_FC_FONT=0 + CAIRO_HAS_PS_SURFACE=1 + CAIRO_HAS_PDF_SURFACE=1 +-CAIRO_HAS_SVG_SURFACE=1 ++CAIRO_HAS_SVG_SURFACE=0 + CAIRO_HAS_TEST_SURFACES=0 + CAIRO_HAS_TEE_SURFACE=0 + CAIRO_HAS_XML_SURFACE=0 +--- misc/cairo-1.10.2/build/Makefile.win32.common 2009-06-14 23:53:24.000000000 +0200 ++++ misc/build/cairo-1.10.2/build/Makefile.win32.common 2009-06-14 23:53:24.000000000 +0200 +@@ -22,24 +22,26 @@ + OPT := -MD -O2 + endif + +-PIXMAN_CFLAGS := -I$(top_srcdir)/../pixman/pixman +-PIXMAN_LIBS := $(top_builddir)/../pixman/pixman/$(CFG)/pixman-1.lib ++PIXMAN_CFLAGS := -I../../../../inc ++PIXMAN_LIBS := ../../../../lib/pixman-1.lib + + CAIRO_LIBS = gdi32.lib msimg32.lib user32.lib + ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1) + LIBPNG_CFLAGS += -I$(top_srcdir)/../libpng/ +-CAIRO_LIBS += $(top_builddir)/../libpng/libpng.lib ++CAIRO_LIBS += libpng.lib + endif + ifeq ($(CAIRO_HAS_PS_SURFACE)$(CAIRO_HAS_PDF_SURFACE),00) + else + ZLIB_CFLAGS += -I$(top_srcdir)/../zlib/ +-CAIRO_LIBS += $(top_builddir)/../zlib/zdll.lib ++CAIRO_LIBS += $(ZLIB3RDLIB) + endif + + DEFAULT_CFLAGS = -nologo $(MS_MDFLAGS) $(OPT) + DEFAULT_CFLAGS += -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE + DEFAULT_CFLAGS += -I. -I$(top_srcdir) + DEFAULT_CFLAGS += $(PIXMAN_CFLAGS) $(LIBPNG_CFLAGS) $(ZLIB_CFLAGS) ++DEFAULT_CFLAGS += $(SOLARINC) ++DEFAULT_CFLAGS += -DDISABLE_SOME_FLOATING_POINT=1 + + CAIRO_CFLAGS = $(DEFAULT_CFLAGS) $(CFLAGS) + +@@ -61,7 +63,7 @@ + + $(CFG)/%.obj: %.c + @mkdir -p $(CFG) +- @$(CC) $(CAIRO_CFLAGS) -c -Fo"$@" $< ++ $(CC) $(CAIRO_CFLAGS) -c -Fo"$@" $< + + $(CFG)/%-static.obj: %.c + @mkdir -p $(CFG) +--- misc/cairo-1.10.2/build/config.sub 2009-08-14 23:33:32.000000000 +0200 ++++ misc/build/cairo-1.10.2/build/config.sub 2009-08-14 23:33:32.000000000 +0200 +@@ -120,7 +120,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) +@@ -1272,7 +1272,7 @@ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ +- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -udi* | -linux-androideabi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ +--- misc/cairo-1.10.2/configure 2010-12-25 15:22:57.000000000 +0100 ++++ misc/build/cairo-1.10.2/configure 2010-12-25 15:22:57.000000000 +0100 +@@ -19259,61 +19259,11 @@ + rm -f confcache + + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5 +-$as_echo_n "checking for compress in -lz... " >&6; } +-if test "${ac_cv_lib_z_compress+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lz $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char compress (); +-int +-main () +-{ +-return compress (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_z_compress=yes +-else +- ac_cv_lib_z_compress=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5 +-$as_echo "$ac_cv_lib_z_compress" >&6; } +-if test "x$ac_cv_lib_z_compress" = x""yes; then : +- ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +-if test "x$ac_cv_header_zlib_h" = x""yes; then : +- + have_libz=yes + + $as_echo "#define HAVE_ZLIB 1" >>confdefs.h + + +-else +- have_libz="no (requires zlib http://www.gzip.org/zlib/)" +-fi +- +- +-else +- have_libz="no (requires zlib http://www.gzip.org/zlib/)" +-fi +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlsym in -ldl" >&5 + $as_echo_n "checking for dlsym in -ldl... " >&6; } + if test "${ac_cv_lib_dl_dlsym+set}" = set; then : +@@ -26427,7 +26367,7 @@ + + if test "x$png_REQUIRES" = x; then + # libpng13 is GnuWin32's libpng-1.2.8 :-( +- for l in libpng libpng14 libpng12 libpng13 libpng10; do ++ for l in libpng libpng14 libpng12 libpng15 libpng13 libpng10; do + if $PKG_CONFIG --exists $l ; then + png_REQUIRES=$l + use_png=yes +@@ -29424,7 +29424,7 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_VERSION - OK" >&5 + $as_echo "$FREETYPE_VERSION - OK" >&6; } + ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags` +- ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs` ++ ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs | $SED -e 's/-lz//g'` + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_VERSION - Too old" >&5 + $as_echo "$FREETYPE_VERSION - Too old" >&6; } + use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)" +@@ -29434,7 +29434,7 @@ + fi + + ft_CFLAGS="$FREETYPE_CFLAGS" +- ft_LIBS="$FREETYPE_LIBS" ++ ft_LIBS=`echo "$FREETYPE_LIBS" | $SED -e 's/-lz//g'` + + cairo_cv_ft_use=$use_ft + cairo_cv_ft_cache_vars=" BASE REQUIRES CFLAGS NONPKGCONFIG_CFLAGS LIBS NONPKGCONFIG_LIBS NONPKGCONFIG_EXTRA_LIBS" +@@ -30121,7 +30121,7 @@ + + # The ps backend requires zlib. + use_ps=$have_libz +- ps_NONPKGCONFIG_LIBS=-lz ++ ps_NONPKGCONFIG_LIBS=$ZLIB3RDLIB + + cairo_cv_ps_use=$use_ps + cairo_cv_ps_cache_vars=" BASE REQUIRES CFLAGS NONPKGCONFIG_CFLAGS LIBS NONPKGCONFIG_LIBS NONPKGCONFIG_EXTRA_LIBS" +@@ -30549,7 +30549,7 @@ + + # The pdf backend requires zlib. + use_pdf=$have_libz +- pdf_NONPKGCONFIG_LIBS=-lz ++ pdf_NONPKGCONFIG_LIBS=$ZLIB3RDLIB + + cairo_cv_pdf_use=$use_pdf + cairo_cv_pdf_cache_vars=" BASE REQUIRES CFLAGS NONPKGCONFIG_CFLAGS LIBS NONPKGCONFIG_LIBS NONPKGCONFIG_EXTRA_LIBS" +@@ -32296,7 +32296,7 @@ + + + use_xml=$have_libz +- xml_NONPKGCONFIG_LIBS=-lz ++ xml_NONPKGCONFIG_LIBS=$ZLIB3RDLIB + + cairo_cv_xml_use=$use_xml + cairo_cv_xml_cache_vars=" BASE REQUIRES CFLAGS NONPKGCONFIG_CFLAGS LIBS NONPKGCONFIG_LIBS NONPKGCONFIG_EXTRA_LIBS" +@@ -32864,7 +32864,7 @@ + $_compile_program + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- cairo_cc_stderr=`test -f conftest.err && cat conftest.err` ++ cairo_cc_stderr=`test -f conftest.err && grep -v 'ld: warning: object file compiled with -mlong-branch which is no longer needed.' conftest.err` + cairo_cc_flag=yes + else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` +--- misc/cairo-1.10.2/src/cairo-output-stream.c 2010-07-12 10:57:03.000000000 +0200 ++++ misc/build/cairo-1.10.2/src/cairo-output-stream.c 2010-07-12 10:57:03.000000000 +0200 +@@ -313,7 +313,11 @@ + d = 0.0; + + locale_data = localeconv (); ++#ifdef __ANDROID__ ++ decimal_point = "."; ++#else + decimal_point = locale_data->decimal_point; ++#endif + decimal_point_len = strlen (decimal_point); + + assert (decimal_point_len != 0); +--- misc/cairo-1.10.2/src/cairo-ft-font.c 2010-12-25 15:21:34.000000000 +0100 ++++ misc/build/cairo-1.10.2/src/cairo-ft-font.c 2010-12-25 15:21:34.000000000 +0100 +@@ -534,16 +534,16 @@ + ret = FcPatternGetFTFace (pattern, FC_FT_FACE, 0, &font_face); + if (ret == FcResultMatch) + goto DONE; +- if (ret == FcResultOutOfMemory) ++ if (ret == 4 /*FcResultOutOfMemory*/) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + ret = FcPatternGetString (pattern, FC_FILE, 0, (FcChar8 **) &filename); +- if (ret == FcResultOutOfMemory) ++ if (ret == 4 /*FcResultOutOfMemory*/) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + if (ret == FcResultMatch) { + /* If FC_INDEX is not set, we just use 0 */ + ret = FcPatternGetInteger (pattern, FC_INDEX, 0, &id); +- if (ret == FcResultOutOfMemory) ++ if (ret == 4 /*FcResultOutOfMemory*/) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + goto DONE; diff --git a/external/cairo/cairo/cairo-1.10.2.wntmsc.patch b/external/cairo/cairo/cairo-1.10.2.wntmsc.patch new file mode 100644 index 000000000000..1aa882a03163 --- /dev/null +++ b/external/cairo/cairo/cairo-1.10.2.wntmsc.patch @@ -0,0 +1,56 @@ +--- misc/cairo-1.10.2/src/Makefile.sources 2010-12-25 07:21:34.000000000 -0700 ++++ misc/build/cairo-1.10.2/src/Makefile.sources 2011-12-16 08:44:19.209301900 -0700 +@@ -214,7 +214,7 @@ + cairo_pdf_headers = cairo-pdf.h + cairo_pdf_private = cairo-pdf-surface-private.h + cairo_pdf_sources = cairo-pdf-surface.c +-if CAIRO_HAS_PDF_SURFACE ++ifeq ($(CAIRO_HAS_PDF_SURFACE),1) + req_cairo_deflate_stream_sources = $(cairo_deflate_stream_sources) + endif + +@@ -248,7 +248,7 @@ + cairo-xlib-surface-private.h \ + cairo-xlib-xrender-private.h \ + $(NULL) +-if BUILD_XLIB_XCB ++ifeq ($(BUILD_XLIB_XCB),1) + cairo_xlib_sources = cairo-xlib-xcb-surface.c + else + cairo_xlib_sources = \ +@@ -273,7 +273,7 @@ + cairo-xcb-surface-core.c \ + cairo-xcb-surface-render.c \ + $(NULL) +-if BUILD_XCB_SHM ++ifeq ($(BUILD_XCB_SHM),1) + cairo_xcb_sources += \ + cairo-xcb-shm.c \ + cairo-xcb-connection-shm.c \ +@@ -322,7 +322,7 @@ + cairo-gl-gradient.c \ + cairo-gl-shaders.c \ + cairo-gl-surface.c +-if BUILD_PRIVATE_GLEW ++ifeq ($(BUILD_PRIVATE_GLEW),1) + cairo_gl_sources += glew/glew.c + endif + +@@ -373,7 +373,7 @@ + + cairo_script_headers = cairo-script.h + cairo_script_sources = cairo-script-surface.c +-if CAIRO_HAS_SCRIPT_SURFACE ++ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1) + req_cairo_deflate_stream_sources = $(cairo_deflate_stream_sources) + endif + +@@ -383,7 +383,7 @@ + + cairo_xml_headers = cairo-xml.h + cairo_xml_sources = cairo-xml-surface.c +-if CAIRO_HAS_XML_SURFACE ++ifeq ($(CAIRO_HAS_XML_SURFACE),1) + req_cairo_deflate_stream_sources = $(cairo_deflate_stream_sources) + endif + diff --git a/external/cairo/cairo/cairo.dlsym.lcdfilter.patch b/external/cairo/cairo/cairo.dlsym.lcdfilter.patch new file mode 100644 index 000000000000..46f7ac74fd7a --- /dev/null +++ b/external/cairo/cairo/cairo.dlsym.lcdfilter.patch @@ -0,0 +1,56 @@ +--- misc/cairo-1.10.2/src/cairo-ft-font.c 2012-01-06 09:09:21.500373823 +0000 ++++ misc/build/cairo-1.10.2/src/cairo-ft-font.c 2012-01-06 09:31:01.645238786 +0000 +@@ -59,6 +59,8 @@ + + #if HAVE_FT_LIBRARY_SETLCDFILTER + #include FT_LCD_FILTER_H ++#elif HAVE_DLFCN_H ++#include <dlfcn.h> + #endif + + /* Fontconfig version older than 2.6 didn't have these options */ +@@ -1217,6 +1219,26 @@ + return CAIRO_STATUS_SUCCESS; + } + ++static void try_FT_Library_SetLcdFilter( FT_Library library, ++ int lcd_filter ) ++{ ++#if HAVE_FT_LIBRARY_SETLCDFILTER ++ FT_Library_SetLcdFilter (library, lcd_filter); ++#elif HAVE_DLFCN_H ++ static void (*pFT_Library_SetLcdFilter) (FT_Library, int); ++ static int dlsymed = 0; ++ ++ if (!dlsymed) ++ { ++ pFT_Library_SetLcdFilter = dlsym(RTLD_DEFAULT, "FT_Library_SetLcdFilter"); ++ dlsymed = 1; ++ } ++ ++ if (pFT_Library_SetLcdFilter) ++ (*pFT_Library_SetLcdFilter) (library, lcd_filter); ++#endif ++} ++ + /* Converts an outline FT_GlyphSlot into an image + * + * This could go through _render_glyph_bitmap as well, letting +@@ -1350,15 +1372,11 @@ + break; + } + +-#if HAVE_FT_LIBRARY_SETLCDFILTER +- FT_Library_SetLcdFilter (library, lcd_filter); +-#endif ++ try_FT_Library_SetLcdFilter(library, lcd_filter); + + fterror = FT_Render_Glyph (face->glyph, render_mode); + +-#if HAVE_FT_LIBRARY_SETLCDFILTER +- FT_Library_SetLcdFilter (library, FT_LCD_FILTER_NONE); +-#endif ++ try_FT_Library_SetLcdFilter(library, FT_LCD_FILTER_NONE); + + if (fterror != 0) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); diff --git a/external/cairo/cairo/dummy_pkg_config b/external/cairo/cairo/dummy_pkg_config new file mode 100755 index 000000000000..829303ea5b21 --- /dev/null +++ b/external/cairo/cairo/dummy_pkg_config @@ -0,0 +1,3 @@ +#!/bin/sh + + diff --git a/external/cairo/cairo/no-flto-clang.patch b/external/cairo/cairo/no-flto-clang.patch new file mode 100644 index 000000000000..725f4843eda9 --- /dev/null +++ b/external/cairo/cairo/no-flto-clang.patch @@ -0,0 +1,11 @@ +--- misc/cairo-1.10.2/configure.sav 2013-06-26 15:00:42.000000000 +0200 ++++ misc/cairo-1.10.2/configure 2013-06-26 15:03:36.995117032 +0200 +@@ -17236,7 +17236,7 @@ MAYBE_WARN="-Wall -Wextra \ + MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \ + -erroff=E_ENUM_TYPE_MISMATCH_OP" + +-MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common -flto" ++MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common" + + MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2" + diff --git a/external/cairo/pixman/Makefile.win32.common b/external/cairo/pixman/Makefile.win32.common new file mode 100644 index 000000000000..30b94e7b1ea3 --- /dev/null +++ b/external/cairo/pixman/Makefile.win32.common @@ -0,0 +1,54 @@ +LIBRARY = pixman-1 + +CC = cl +LD = link +AR = lib +PERL = perl + +ifeq ($(top_builddir),) +top_builddir = $(top_srcdir) +endif + +CFG_VAR = $(CFG) +ifeq ($(CFG_VAR),) +CFG_VAR = release +endif + +ifeq ($(CFG_VAR),debug) +CFG_CFLAGS = -MD -Od -Zi +CFG_LDFLAGS = -DEBUG +else +CFG_CFLAGS = -MD -O2 +CFG_LDFLAGS = +endif + +# Package definitions, to be used instead of those provided in config.h +PKG_CFLAGS = -DPACKAGE=$(LIBRARY) -DPACKAGE_VERSION="" -DPACKAGE_BUGREPORT="" + +BASE_CFLAGS = -nologo -I. -I$(top_srcdir) -I$(top_srcdir)/pixman + +PIXMAN_CFLAGS = $(BASE_CFLAGS) $(PKG_CFLAGS) $(CFG_CFLAGS) $(CFLAGS) +PIXMAN_LDFLAGS = -nologo $(CFG_LDFLAGS) $(LDFLAGS) +PIXMAN_ARFLAGS = -nologo $(LDFLAGS) + + +inform: +ifneq ($(CFG),release) +ifneq ($(CFG),debug) +ifneq ($(CFG),) + @echo "Invalid specified configuration option: "$(CFG)"." + @echo + @echo "Possible choices for configuration are 'release' and 'debug'" + @exit 1 +endif + @echo "Using default RELEASE configuration... (use CFG=release or CFG=debug)" +endif +endif + + +$(CFG_VAR)/%.obj: %.c $(BUILT_SOURCES) + @mkdir -p $(CFG_VAR) + @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< + +clean: inform + @$(RM) $(CFG_VAR)/*.{exe,ilk,lib,obj,pdb} $(BUILT_SOURCES) || exit 0 diff --git a/external/cairo/pixman/pixman-0.24.4.android.patch b/external/cairo/pixman/pixman-0.24.4.android.patch new file mode 100644 index 000000000000..ae0626eaa02b --- /dev/null +++ b/external/cairo/pixman/pixman-0.24.4.android.patch @@ -0,0 +1,13 @@ +--- misc/pixman-0.24.4/ltmain.sh ++++ misc/build/pixman-0.24.4/ltmain.sh +@@ -3228,6 +3228,10 @@ + fi + else + ++ # Force no versioning suffix for Android ++ ++ version_type=none ++ + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 diff --git a/external/cairo/pixman/pixman-0.24.4.patch b/external/cairo/pixman/pixman-0.24.4.patch new file mode 100644 index 000000000000..72fd03a0f177 --- /dev/null +++ b/external/cairo/pixman/pixman-0.24.4.patch @@ -0,0 +1,96 @@ +--- misc/pixman-0.24.4/Makefile.in 2011-11-06 22:11:25.000000000 +0100 ++++ misc/build/pixman-0.24.4/Makefile.in 2011-12-16 09:06:45.317211035 +0100 +@@ -272,7 +272,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-SUBDIRS = pixman demos test ++SUBDIRS = pixman + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = pixman-1.pc + GPGKEY = 6FF7C1A8 +--- misc/pixman-0.24.4/config.sub 2008-08-30 00:27:25.000000000 +0200 ++++ misc/build/pixman-0.24.4/config.sub 2011-12-16 09:05:14.595773609 +0100 +@@ -120,7 +120,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os +@@ -1247,7 +1247,7 @@ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ +- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -udi* | -linux-androideabi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ +--- misc/pixman-0.24.4/configure 2011-11-06 22:11:27.000000000 +0100 ++++ misc/build/pixman-0.24.4/configure 2011-12-16 09:06:16.482898083 +0100 +@@ -20202,6 +20202,13 @@ + + + ++# getisax is falsely detected when using OOo build script on Linux/FBSD... ++case "$build_os" in ++ linux-gnu*) ++ ;; ++ freebsd*) ++ ;; ++ *) + + for ac_func in getisax + do +@@ -20304,6 +20311,8 @@ + done + + ++ ;; ++esac + { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 + $as_echo_n "checking whether byte ordering is bigendian... " >&6; } + if test "${ac_cv_c_bigendian+set}" = set; then +@@ -24552,7 +24552,7 @@ + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then +- pixman_cc_stderr=`test -f conftest.err && cat conftest.err` ++ pixman_cc_stderr=`test -f conftest.err && grep -v 'ld: warning: object file compiled with -mlong-branch which is no longer needed.' conftest.err` + pixman_cc_flag=yes + else + $as_echo "$as_me: failed program was:" >&5 +--- misc/pixman-0.24.4/pixman/pixman-utils.c ++++ misc/build/pixman-0.24.4/pixman/pixman-utils.c +@@ -27,6 +27,7 @@ + #endif + #include <stdio.h> + #include <stdlib.h> ++#include <limits.h> + + #include "pixman-private.h" + +--- misc/pixman-0.24.4/pixman/pixman-mmx.c 2011-11-06 13:47:42.000000000 -0700 ++++ misc/build/pixman-0.24.4/pixman/pixman-mmx.c 2011-12-19 00:41:42.280402800 -0700 +@@ -309,7 +309,7 @@ + + /* Elemental unaligned loads */ + +-static __inline__ __m64 ldq_u(uint64_t *p) ++static inline __m64 ldq_u(uint64_t *p) + { + #ifdef USE_X86_MMX + /* x86's alignment restrictions are very relaxed. */ +@@ -328,7 +328,7 @@ + #endif + } + +-static __inline__ uint32_t ldl_u(uint32_t *p) ++static inline uint32_t ldl_u(uint32_t *p) + { + #ifdef USE_X86_MMX + /* x86's alignment restrictions are very relaxed. */ + |