Hello,
finally managed to get back to libo after a few and found that cairo is
needed even with --disable-cairo-canvas.
The situation is a bit more convoluted than last time so while at move
all the cairo related machinery in the same place and try to make easier
to follow the various cases.
I won't have a full build before monday (update: it failed, looks
unrelated) so any review / test in the mean time is appreciated.
Will post a proper patch from git after i get the build sorted out.
thanks,
riccardo
diff --git a/configure.in b/configure.in
index e3943eb..085e25c 100644
--- a/configure.in
+++ b/configure.in
@@ -8763,21 +8763,6 @@ if test "$enable_split_opt_features" = "yes"; then
fi
AC_SUBST(SPLIT_OPT_FEATURES)
-if test $_os = Darwin -o $_os = WINNT; then
- if test "$enable_cairo_canvas" = yes; then
- AC_MSG_ERROR([The cairo canvas should not be used for this platform])
- fi
- enable_cairo_canvas=no
-elif test -z "$enable_cairo_canvas"; then
- enable_cairo_canvas=yes
-fi
-
-ENABLE_CAIRO_CANVAS=""
-if test "$enable_cairo_canvas" = "yes"; then
- ENABLE_CAIRO_CANVAS="TRUE"
-fi
-AC_SUBST(ENABLE_CAIRO_CANVAS)
-
dnl ===================================================================
dnl Check whether the GStreamer libraries are available.
dnl ===================================================================
@@ -10349,58 +10334,82 @@ AC_SUBST(LIBRSVG_CFLAGS)
AC_SUBST(LIBRSVG_LIBS)
AC_SUBST(SYSTEM_LIBRSVG)
-dnl ===================================================================
-dnl Test whether to build cairo or rely on the system version
-dnl ===================================================================
+dnl ===============================================================================
+dnl Test whether to build cairo, rely on the system version or don't use it at all
+dnl ===============================================================================
+dnl Check and warn is cairo has been enabled by mistake
+CAIRO_BY_MISTAKE=no
+if test $_os = Darwin -o $_os = WINNT; then
+ CAIRO_BY_MISTAKE=yes
+ enable_cairo_canvas=no
+ if test $_os = WINNT; then
+ dnl We only need cairo for Windows if we
+ dnl build librsvg or directx disabled
+ if test "$ENABLE_LIBRSVG" != NO -o -z "$ENABLE_DIRECTX"; then
+ enable_cairo_canvas=yes
+ CAIRO_BY_MISTAKE=no
+ fi
+ fi
+elif test -z "$enable_cairo_canvas"; then
+ enable_cairo_canvas=yes
+fi
-SYSTEM_CAIRO=""
+if test "$ENABLE_LIBRSVG" != NO; then
+ enable_cairo_canvas=yes
+fi
+
+if test "$CAIRO_BY_MISTAKE" = "yes" -a "$enable_cairo_canvas" != "yes"; then
+ AC_MSG_ERROR([The cairo canvas should not be used for this platform])
+ enable_cairo_canvas=no
+fi
-AC_MSG_CHECKING([whether to use the system cairo])
+ENABLE_CAIRO_CANVAS=""
+if test "$enable_cairo_canvas" = "yes"; then
+ ENABLE_CAIRO_CANVAS="TRUE"
+fi
+AC_SUBST(ENABLE_CAIRO_CANVAS)
-if test "$with_system_cairo" = "yes"; then
- SYSTEM_CAIRO=YES
- AC_MSG_RESULT([yes])
- PKG_CHECK_MODULES( CAIRO, cairo >= 1.0.2 )
+SYSTEM_CAIRO=""
+if test "$enable_cairo_canvas" = "yes"; then
+ AC_MSG_CHECKING([whether to use the system cairo])
+ if test "$with_system_cairo" = "yes"; then
+ SYSTEM_CAIRO=YES
+ AC_MSG_RESULT([yes])
+
+ PKG_CHECK_MODULES( CAIRO, cairo >= 1.0.2 )
- if test "$test_xrender" = "yes"; then
- if test "$with_system_xextensions_headers" != "no"; then
- AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8])
- AC_LANG_PUSH([C])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/extensions/Xrender.h>]],[[
+ if test "$test_xrender" = "yes"; then
+ if test "$with_system_xextensions_headers" != "no"; then
+ AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8])
+ AC_LANG_PUSH([C])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/extensions/Xrender.h>]],[[
#ifdef PictStandardA8
#else
return fail;
#endif
]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no, X headers too old.])])
- AC_LANG_POP([C])
- fi
- fi
- libo_MINGW_CHECK_DLL([CAIRO], [libcairo])
- libo_MINGW_TRY_DLL([FONTCONFIG], [libfontconfig])
- libo_MINGW_TRY_DLL([FREETYPE], [libfreetype])
- libo_MINGW_TRY_DLL([PIXMAN], [libpixman])
- libo_MINGW_TRY_DLL([PNG15], [libpng15])
-else
- AC_MSG_RESULT([no])
-
- if test $_os = WINNT; then
- dnl We only need cairo for Windows if we
- dnl build librsvg or directx disabled
- if test "$ENABLE_LIBRSVG" != NO -o -z "$ENABLE_DIRECTX"; then
- BUILD_TYPE="$BUILD_TYPE CAIRO"
+ AC_LANG_POP([C])
+ fi
fi
+ libo_MINGW_CHECK_DLL([CAIRO], [libcairo])
+ libo_MINGW_TRY_DLL([FONTCONFIG], [libfontconfig])
+ libo_MINGW_TRY_DLL([FREETYPE], [libfreetype])
+ libo_MINGW_TRY_DLL([PIXMAN], [libpixman])
+ libo_MINGW_TRY_DLL([PNG15], [libpng15])
else
- if test "$enable_cairo_canvas" = "yes"; then
- BUILD_TYPE="$BUILD_TYPE CAIRO"
- else
- if test "$with_system_cairo" != "yes"; then
- if test "$ENABLE_LIBRSVG" != NO; then
- BUILD_TYPE="$BUILD_TYPE CAIRO"
- fi
+ AC_MSG_RESULT([no])
+
+ if test $_os = WINNT; then
+ dnl We only need cairo for Windows if we
+ dnl build librsvg or directx disabled
+ if test "$ENABLE_LIBRSVG" != NO -o -z "$ENABLE_DIRECTX"; then
+ BUILD_TYPE="$BUILD_TYPE CAIRO"
fi
+ else
+ BUILD_TYPE="$BUILD_TYPE CAIRO"
fi
fi
fi
Context
- [RFC] cleanup cairo detection · Riccardo Magliocchetti
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.