diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-11-16 13:40:22 +0000 |
---|---|---|
committer | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2016-02-07 23:45:11 -0500 |
commit | 194858cd24d009e086df30d845dc8d2491852a25 (patch) | |
tree | 27e0071949b3b8157fa04f0cc6c1e9a1cfb158d7 | |
parent | 042e7e5f44cfacd188e36b2d2e4c2995ad421b24 (diff) |
build cairo on android
Reviewed-on: https://gerrit.libreoffice.org/19991
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit fb7d4ba1cbe24b74dfab0f54eeffe898a0291ce3)
Change-Id: Ie2f7662a4cc3955963517f265894b8f6a495ece8
-rw-r--r-- | RepositoryExternal.mk | 18 | ||||
-rwxr-xr-x | bin/lo-all-static-libs | 2 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | external/cairo/ExternalPackage_cairo.mk | 4 | ||||
-rw-r--r-- | external/cairo/ExternalPackage_pixman.mk | 5 | ||||
-rw-r--r-- | external/cairo/ExternalProject_cairo.mk | 5 | ||||
-rw-r--r-- | external/cairo/ExternalProject_pixman.mk | 2 | ||||
-rw-r--r-- | vcl/Library_vcl.mk | 2 | ||||
-rw-r--r-- | vcl/headless/svpgdi.cxx | 13 | ||||
-rw-r--r-- | vcl/inc/headless/svpgdi.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/unx/gtk/gtkgdi.hxx | 6 |
11 files changed, 41 insertions, 20 deletions
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index eb12c36001ec..ad4d6b619df6 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1288,6 +1288,24 @@ endef endif # SYSTEM_CAIRO +else ifeq ($(OS),ANDROID) + +define gb_LinkTarget__use_cairo +$(call gb_LinkTarget_use_package,$(1),cairo) +$(call gb_LinkTarget_use_package,$(1),pixman) +$(call gb_LinkTarget_use_external,$(1),freetype_headers) +$(call gb_LinkTarget_set_include,$(1),\ + -I$(call gb_UnpackedTarball_get_dir,cairo) \ + -I$(call gb_UnpackedTarball_get_dir,cairo)/src \ + $$(INCLUDE) \ +) +$(call gb_LinkTarget_add_libs,$(1),\ + -L$(call gb_UnpackedTarball_get_dir,cairo)/src/.libs -lcairo \ + -L$(call gb_UnpackedTarball_get_dir,pixman)/pixman/.libs -lpixman-1 \ +) + +endef + endif # CAIRO ifneq ($(SYSTEM_FREETYPE),) diff --git a/bin/lo-all-static-libs b/bin/lo-all-static-libs index 8cef48656c5f..14ccfde8a7df 100755 --- a/bin/lo-all-static-libs +++ b/bin/lo-all-static-libs @@ -39,6 +39,8 @@ ANDROID) oslibs="$WORKDIR/UnpackedTarball/curl/lib/.libs/*.a" oslibs="$oslibs $WORKDIR/UnpackedTarball/fontconfig/src/.libs/libfontconfig.a" oslibs="$oslibs $WORKDIR/UnpackedTarball/freetype/objs/.libs/libfreetype.a" + oslibs="$oslibs $WORKDIR/UnpackedTarball/pixman/pixman/.libs/libpixman-1.a" + oslibs="$oslibs $WORKDIR/UnpackedTarball/cairo/src/.libs/libcairo.a" # Only liblo-bootstrap.a ends up here: oslibs="$oslibs $WORKDIR/LinkTarget/Library/lib*.a" ;; diff --git a/configure.ac b/configure.ac index d3c6e614389d..196e811f29b8 100644 --- a/configure.ac +++ b/configure.ac @@ -789,7 +789,7 @@ linux-android*) fi AC_DEFINE(HAVE_FT_FACE_GETCHARVARIANTINDEX) - BUILD_TYPE="$BUILD_TYPE FONTCONFIG FREETYPE" + BUILD_TYPE="$BUILD_TYPE CAIRO FONTCONFIG FREETYPE" ;; *) diff --git a/external/cairo/ExternalPackage_cairo.mk b/external/cairo/ExternalPackage_cairo.mk index e40fc5496489..720927670c39 100644 --- a/external/cairo/ExternalPackage_cairo.mk +++ b/external/cairo/ExternalPackage_cairo.mk @@ -11,6 +11,10 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,cairo,cairo)) $(eval $(call gb_ExternalPackage_use_external_project,cairo,cairo)) +ifneq ($(OS),ANDROID) + $(eval $(call gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo.so.2,src/.libs/libcairo.so.2.11000.2)) +endif + # vim: set noet sw=4 ts=4: diff --git a/external/cairo/ExternalPackage_pixman.mk b/external/cairo/ExternalPackage_pixman.mk index ead02895cdf6..c08a775012d6 100644 --- a/external/cairo/ExternalPackage_pixman.mk +++ b/external/cairo/ExternalPackage_pixman.mk @@ -11,6 +11,11 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,pixman,pixman)) $(eval $(call gb_ExternalPackage_use_external_project,pixman,pixman)) +ifneq ($(OS),ANDROID) + $(eval $(call gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.so.0,pixman/.libs/libpixman-1.so.0.24.4)) +endif + + # vim: set noet sw=4 ts=4: diff --git a/external/cairo/ExternalProject_cairo.mk b/external/cairo/ExternalProject_cairo.mk index cc26096f23d6..d204514a29db 100644 --- a/external/cairo/ExternalProject_cairo.mk +++ b/external/cairo/ExternalProject_cairo.mk @@ -32,7 +32,7 @@ $(call gb_ExternalProject_get_state_target,cairo,build) : $(call gb_ExternalProject_run,build,\ ./configure \ $(if $(debug),STRIP=" ") \ - CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS)" \ + CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS) $(gb_VISIBILITY_FLAGS)" \ $(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" \ @@ -40,7 +40,10 @@ $(call gb_ExternalProject_get_state_target,cairo,build) : ZLIB3RDLIB="$(if $(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)" \ + FREETYPE_CFLAGS="-I$(call gb_UnpackedTarball_get_dir,freetype)/include" \ + FONTCONFIG_CFLAGS="-I$(call gb_UnpackedTarball_get_dir,fontconfig)" \ $(if $(filter IOS,$(OS)),--disable-shared,--disable-static) \ + $(if $(filter ANDROID,$(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 \ diff --git a/external/cairo/ExternalProject_pixman.mk b/external/cairo/ExternalProject_pixman.mk index 8eb7d8ce9498..bbb4081420b0 100644 --- a/external/cairo/ExternalProject_pixman.mk +++ b/external/cairo/ExternalProject_pixman.mk @@ -32,7 +32,7 @@ else $(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 MACOSX IOS ANDROID,$(OS)),--disable-shared,--disable-static) \ $(if $(filter ANDROID,$(OS)),--disable-arm-simd --disable-arm-neon --disable-arm-iwmmxt) \ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ && $(MAKE) \ diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index faa8f43c2f50..743590088c1a 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -615,6 +615,7 @@ $(eval $(call gb_Library_use_libraries,vcl,\ )) $(eval $(call gb_Library_use_externals,vcl,\ + cairo \ fontconfig \ freetype \ )) @@ -641,6 +642,7 @@ $(eval $(call gb_Library_use_static_libraries,vcl,\ )) $(eval $(call gb_Library_use_externals,vcl,\ + cairo \ fontconfig \ freetype \ expat \ diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx index 309de905d4ea..8df585f2cdd2 100644 --- a/vcl/headless/svpgdi.cxx +++ b/vcl/headless/svpgdi.cxx @@ -33,9 +33,7 @@ #include <basegfx/polygon/b2dpolygontools.hxx> #include <basebmp/scanlineformats.hxx> -#if ENABLE_CAIRO_CANVAS #include <cairo.h> -#endif #if OSL_DEBUG_LEVEL > 2 #include <basebmp/debug.hxx> @@ -97,8 +95,6 @@ bool SvpSalGraphics::drawTransformedBitmap( return false; } -#if ENABLE_CAIRO_CANVAS - namespace { bool isCairoCompatible(const basebmp::BitmapDeviceSharedPtr &rBuffer) @@ -180,13 +176,10 @@ namespace } #endif -#endif - bool SvpSalGraphics::drawAlphaRect(long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency) { bool bRet = false; (void)nX; (void)nY; (void)nWidth; (void)nHeight; (void)nTransparency; -#if ENABLE_CAIRO_CANVAS #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 10, 0) if (m_bUseLineColor || !m_bUseFillColor) { @@ -230,7 +223,6 @@ bool SvpSalGraphics::drawAlphaRect(long nX, long nY, long nWidth, long nHeight, } bRet = true; #endif -#endif return bRet; } @@ -1137,7 +1129,6 @@ SystemGraphicsData SvpSalGraphics::GetGraphicsData() const bool SvpSalGraphics::supportsOperation(OutDevSupportType eType) const { -#if ENABLE_CAIRO_CANVAS if (m_aDrawMode == basebmp::DrawMode::XOR) return false; if (!isCairoCompatible(m_aDevice)) @@ -1151,10 +1142,6 @@ bool SvpSalGraphics::supportsOperation(OutDevSupportType eType) const return false; } return false; -#else - (void)eType; - return false; -#endif } #endif diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx index 2416c597166e..0171c6820269 100644 --- a/vcl/inc/headless/svpgdi.hxx +++ b/vcl/inc/headless/svpgdi.hxx @@ -95,7 +95,7 @@ public: SvpSalGraphics(); virtual ~SvpSalGraphics(); - virtual SalGraphicsImpl* GetImpl() const override { return NULL; }; + virtual SalGraphicsImpl* GetImpl() const override { return nullptr; }; virtual void GetResolution( sal_Int32& rDPIX, sal_Int32& rDPIY ) override; virtual sal_uInt16 GetBitCount() const override; virtual long GetGraphicsWidth() const override; diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx index 01d021800ae4..eaf53f2a7400 100644 --- a/vcl/inc/unx/gtk/gtkgdi.hxx +++ b/vcl/inc/unx/gtk/gtkgdi.hxx @@ -51,15 +51,15 @@ public: Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ) SAL_OVERRIDE; virtual bool SupportsCairo() const SAL_OVERRIDE; - virtual cairo::SurfaceSharedPtr CreateSurface(const cairo::CairoSurfaceSharedPtr& rSurface) const SAL_OVERRIDE; - virtual cairo::SurfaceSharedPtr CreateSurface(const OutputDevice& rRefDevice, int x, int y, int width, int height) const SAL_OVERRIDE; + virtual cairo::SurfaceSharedPtr CreateSurface(const cairo::CairoSurfaceSharedPtr& rSurface) const override; + virtual cairo::SurfaceSharedPtr CreateSurface(const OutputDevice& rRefDevice, int x, int y, int width, int height) const override; void WidgetQueueDraw() const; void updateSettings( AllSettings& rSettings ); static void refreshFontconfig( GtkSettings *pSettings ); static void signalSettingsNotify( GObject*, GParamSpec *pSpec, gpointer ); - virtual void GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY) SAL_OVERRIDE; + virtual void GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY) override; private: GtkWidget *mpWindow; static GtkStyleContext *mpButtonStyle; |