summaryrefslogtreecommitdiff
path: root/cairo
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-07-21 18:51:33 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-07-21 18:51:33 +0200
commit31796472e75b70e2ccb972ef482368420ad89edb (patch)
tree73f181e8d7603bbef168673037c57364d3706a92 /cairo
parent31daa1bd60b3d2118393752cbc1a1d44d9a802f7 (diff)
parent7862353ab6a63182dec29993a2a582b3d2cb7b08 (diff)
Merge branch 'master' into feature/gnumake4
Diffstat (limited to 'cairo')
-rw-r--r--cairo/cairo-1.8.0.ios.patch66
-rw-r--r--cairo/cairo/makefile.mk31
-rw-r--r--cairo/pixman/makefile.mk6
3 files changed, 83 insertions, 20 deletions
diff --git a/cairo/cairo-1.8.0.ios.patch b/cairo/cairo-1.8.0.ios.patch
new file mode 100644
index 000000000000..a5cc8e975e2d
--- /dev/null
+++ b/cairo/cairo-1.8.0.ios.patch
@@ -0,0 +1,66 @@
+--- misc/build/cairo-1.8.0.org/src/cairo-quartz.h
++++ misc/build/cairo-1.8.0/src/cairo-quartz.h
+@@ -40,7 +40,7 @@
+
+ #if CAIRO_HAS_QUARTZ_SURFACE
+
+-#include <ApplicationServices/ApplicationServices.h>
++#include <CoreGraphics/CoreGraphics.h>
+
+ CAIRO_BEGIN_DECLS
+
+@@ -66,8 +66,12 @@
+ cairo_public cairo_font_face_t *
+ cairo_quartz_font_face_create_for_cgfont (CGFontRef font);
+
++#if 0
++
+ cairo_public cairo_font_face_t *
+ cairo_quartz_font_face_create_for_atsu_font_id (ATSUFontID font_id);
++
++#endif /* 0 */
+
+ #endif /* CAIRO_HAS_QUARTZ_FONT */
+
+--- misc/build/cairo-1.8.0.org/src/cairo-quartz-surface.c
++++ misc/build/cairo-1.8.0/src/cairo-quartz-surface.c
+@@ -152,10 +152,6 @@
+ CGContextGetAllowsFontSmoothingPtr = dlsym(RTLD_DEFAULT, "CGContextGetAllowsFontSmoothing");
+ CGContextSetAllowsFontSmoothingPtr = dlsym(RTLD_DEFAULT, "CGContextSetAllowsFontSmoothing");
+
+- if (Gestalt(gestaltSystemVersion, &_cairo_quartz_osx_version) != noErr) {
+- // assume 10.4
+- _cairo_quartz_osx_version = 0x1040;
+- }
+
+ _cairo_quartz_symbol_lookup_done = TRUE;
+ }
+@@ -2093,7 +2093,10 @@
+ yprev = yf;
+ }
+
+- if (_cairo_quartz_osx_version >= 0x1050 && isClipping) {
++ if (0) {
++ /* Assume the bug mentioned below is not present in iOS,
++ * until proven otherwise.
++ */
+ /* If we're clipping, OSX 10.5 (at least as of 10.5.2) has a
+ * bug (apple bug ID #5834794) where the glyph
+ * advances/positions are not transformed by the text matrix
+--- misc/build/cairo-1.8.0.org/src/cairo-quartz-font.c
++++ misc/build/cairo-1.8.0/src/cairo-quartz-font.c
+@@ -766,6 +766,8 @@
+ }
+
+
++#if 0
++
+ /*
+ * compat with old ATSUI backend
+ */
+@@ -808,3 +808,5 @@
+ {
+ return cairo_quartz_font_face_create_for_atsu_font_id (font_id);
+ }
++
++#endif /* 0 */
diff --git a/cairo/cairo/makefile.mk b/cairo/cairo/makefile.mk
index 4059504e35bc..3f411aa4ca3a 100644
--- a/cairo/cairo/makefile.mk
+++ b/cairo/cairo/makefile.mk
@@ -35,14 +35,9 @@ EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
.INCLUDE : settings.mk
-.IF "$(ENABLE_CAIRO)" == ""
+.IF "$(SYSTEM_CAIRO)" == "YES" || "$(GUIBASE)" == "android"
all:
- @echo "Nothing to do (Cairo not enabled)."
-
-.ELIF "$(SYSTEM_CAIRO)" == "YES"
-all:
- @echo "Nothing to do, using system cairo."
-
+ @echo "Not building cairo."
.ENDIF
# --- Files --------------------------------------------------------
@@ -54,6 +49,10 @@ TARFILE_MD5=4ea70ea87b47e92d318d4e7f5b940f47
PATCH_FILES=..$/$(TARFILE_NAME).patch
+.IF "$(OS)" == "IOS"
+PATCH_FILES+=..$/$(TARFILE_NAME).ios.patch
+.ENDIF
+
cairo_CFLAGS=$(SOLARINC)
cairo_LDFLAGS=$(SOLARLIB)
@@ -148,21 +147,21 @@ cairo_CFLAGS+=-march=i486
CONFIGURE_DIR=
-.IF "$(OS)"=="ANDROID"
-# No pkg-config in the Android NDK
+.IF "$(OS)"=="IOS" || "$(OS)"=="ANDROID"
+# No pkg-config on MacOSX (for iOS) or in the Android NDK
CONFIGURE_ACTION=cp $(SRC_ROOT)$/$(PRJNAME)$/cairo$/dummy_pkg_config . && .$/configure
.ELSE
CONFIGURE_ACTION=.$/configure
.ENDIF
.IF "$(OS)"=="IOS"
-CONFIGURE_FLAGS=--disable-shared
+CONFIGURE_FLAGS=--disable-shared --disable-xlib --enable-quartz --enable-quartz-font
.ELSE
CONFIGURE_FLAGS=--disable-static --enable-xlib
.ENDIF
-.IF "$(OS)"=="ANDROID"
-CONFIGURE_FLAGS+=--disable-ft
+.IF "$(OS)"=="IOS" || "$(OS)"=="ANDROID"
+CONFIGURE_FLAGS+=--disable-ft PKG_CONFIG=./dummy_pkg_config
.ELSE
CONFIGURE_FLAGS+=--enable-ft
.ENDIF
@@ -177,9 +176,13 @@ BUILD_ACTION=$(GNUMAKE)
BUILD_FLAGS+= -j$(EXTMAXPROCESS)
BUILD_DIR=$(CONFIGURE_DIR)
+.IF "$(OS)" == "IOS"
+OUT2INC+=src$/cairo-quartz.h
+.ELSE
OUT2INC+=src$/cairo-xlib.h \
src$/cairo-xlib-xrender.h \
src$/cairo-ft.h
+.ENDIF
.ENDIF
@@ -189,12 +192,10 @@ OUT2INC+=src$/cairo-xlib.h \
.IF "$(OS)" != "WNT" || "$(COM)" == "GCC"
# all other platforms except vanilla WNT, which does not use configure
-.IF "$(BUILD_PIXMAN)" == "YES"
# pixman is in this module
# We include paths to this module also in LDFLAGS/CFLAGS to guarantee search order.
# However pixman_* vars need to be also set for configure to work properly on all platforms.
CONFIGURE_FLAGS+=pixman_CFLAGS="-I$(SRC_ROOT)$/$(PRJNAME)$/$(INPATH)$/inc" pixman_LIBS="-L$(SRC_ROOT)$/$(PRJNAME)$/$(INPATH)$/lib -lpixman-1"
-.ENDIF
.IF "$(debug)"!=""
cairo_CFLAGS+=-g
@@ -229,7 +230,7 @@ OUT2LIB+=src$/release$/*.lib
OUT2BIN+=src$/release$/*.dll
.ENDIF
.ELIF "$(OS)"=="IOS" || "$(OS)"=="ANDROID"
-OUT2LIB+=src$/.libs$/libcairo-1.a
+OUT2LIB+=src$/.libs$/libcairo*.a
.ELSE
OUT2LIB+=src$/.libs$/libcairo.so*
.ENDIF
diff --git a/cairo/pixman/makefile.mk b/cairo/pixman/makefile.mk
index d2124079c5d2..58fcda2803bd 100644
--- a/cairo/pixman/makefile.mk
+++ b/cairo/pixman/makefile.mk
@@ -35,11 +35,7 @@ EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
.INCLUDE : settings.mk
-.IF "$(ENABLE_CAIRO)" == ""
-all:
- @echo "Nothing to do (Cairo not enabled)."
-
-.ELIF "$(BUILD_PIXMAN)" == ""
+.IF "$(SYSTEM_CAIRO)" == "YES" || "$(GUIBASE)" == "android"
all:
@echo "Not building pixman."