configure: Refactor platform defaults

The main idea was to move complexity from source (and Makefiles)
into configure.ac, because otherwise these must replicate the
"same" branching, often resulting in diversions. Better to keep
the logic in one place (configure.ac) and set additional variables
to be used directly by source code and Makefiles.

Notably this introduce the "using_*" platform flags, which should
be considered constants. There is USING_X11, which actually tells,
if the build uses the platform's X11 (and I opted for the removal
of HAVE_FEATURE_X11). I also consider variables constant, after
they have been exported by AC_SUBST, which should never be
conditional, or some AC_DEFINE set them for a config header.

A large block of defaults depends on $using_x11, so we set them to
the same value, but just if the platform doesn't set it.

The other important flag is $using_freetype_fontconfig, if the
platform uses freetype and fontconfig. The headless plugin uses
cairo for its drawing operations and freetype+fontconfig for text,
so $test_cairo = $using_freetype_fontconfig. This is independent
from a the cairo canvas!

The OpenGL X11 code now depends on USING_X11, but it doesn't yet
reflect the filter in Library_vcl.mk protecting glx. I don't know
how correct this glx filter is, seeing that the source code just
checked for "UNX - some  non-X11 targets".

Change-Id: Id1ba1a967a5d8d10ee217458be879ed00459f7e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116440
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
This commit is contained in:
Jan-Marek Glogowski
2021-05-30 18:19:40 +02:00
parent 159666084a
commit 3d1f28dd1f
15 changed files with 191 additions and 221 deletions

View File

@@ -163,6 +163,7 @@ export ENABLE_GSTREAMER_1_0=@ENABLE_GSTREAMER_1_0@
export ENABLE_GTK3=@ENABLE_GTK3@ export ENABLE_GTK3=@ENABLE_GTK3@
export ENABLE_GTK4=@ENABLE_GTK4@ export ENABLE_GTK4=@ENABLE_GTK4@
export DISABLE_GUI=@DISABLE_GUI@ export DISABLE_GUI=@DISABLE_GUI@
export ENABLE_HEADLESS=@ENABLE_HEADLESS@
export ENABLE_HTMLHELP=@ENABLE_HTMLHELP@ export ENABLE_HTMLHELP=@ENABLE_HTMLHELP@
export ENABLE_JAVA=@ENABLE_JAVA@ export ENABLE_JAVA=@ENABLE_JAVA@
export ENABLE_LDAP=@ENABLE_LDAP@ export ENABLE_LDAP=@ENABLE_LDAP@

View File

@@ -7,13 +7,6 @@
#ifndef CONFIG_FEATURES_H #ifndef CONFIG_FEATURES_H
#define CONFIG_FEATURES_H #define CONFIG_FEATURES_H
/* X11
*
* Whether we are building code to run in an X11 environment.
*/
#define HAVE_FEATURE_X11 0
/* AVMEDIA - Whether to have functionality to display and manipulate /* AVMEDIA - Whether to have functionality to display and manipulate
* embedded AV media in documents * embedded AV media in documents
*/ */
@@ -119,7 +112,7 @@
/* /*
* Whether User Interface is available * Whether User Interface is available
*/ */
#define HAVE_FEATURE_UI 1 #define HAVE_FEATURE_UI 0
/* /*
* Whether PDF import is available * Whether PDF import is available

View File

@@ -12,11 +12,18 @@ Settings about which desktops have support enabled.
*/ */
#define USING_X11 0 #define USING_X11 0
/**
* Set the enabled platform plugins
*/
#define ENABLE_GTK3 0 #define ENABLE_GTK3 0
#define ENABLE_GTK3_KDE5 0 #define ENABLE_GTK3_KDE5 0
#define ENABLE_HEADLESS 0
#define ENABLE_KF5 0 #define ENABLE_KF5 0
#define ENABLE_QT5 0 #define ENABLE_QT5 0
/**
* Additional settings for the plugins
*/
#define ENABLE_GSTREAMER_1_0 0 #define ENABLE_GSTREAMER_1_0 0
#define QT5_HAVE_GOBJECT 0 #define QT5_HAVE_GOBJECT 0
#define QT5_USING_X11 0 #define QT5_USING_X11 0

View File

@@ -800,26 +800,27 @@ if test "$enable_android_editing" = yes; then
fi fi
AC_SUBST([ENABLE_ANDROID_EDITING]) AC_SUBST([ENABLE_ANDROID_EDITING])
dnl =================================================================== # ===================================================================
dnl The following is a list of supported systems. #
dnl Sequential to keep the logic very simple # Start initial platform setup
dnl These values may be checked and reset later. #
dnl =================================================================== # The using_* variables reflect platform support and should not be
#defaults unless the os test overrides this: # changed after the "End initial platform setup" block.
# This is also true for most test_* variables.
# ===================================================================
build_crypto=yes build_crypto=yes
test_cmis=yes test_cmis=yes
test_curl=yes test_curl=yes
test_randr=yes
test_xrender=yes
test_cups=yes
test_dbus=yes
test_fontconfig=yes
test_cairo=no
test_gdb_index=no test_gdb_index=no
test_split_debug=no test_split_debug=no
test_openldap=yes
test_webdav=yes test_webdav=yes
# There is currently just iOS not using salplug, so this explicitly enables it.
# must: using_freetype_fontconfig
# may: using_headless_plugin defaults to $using_freetype_fontconfig
using_vclplug=yes
# must: using_x11
# Default values, as such probably valid just for Linux, set # Default values, as such probably valid just for Linux, set
# differently below just for Mac OSX, but at least better than # differently below just for Mac OSX, but at least better than
# hardcoding these as we used to do. Much of this is duplicated also # hardcoding these as we used to do. Much of this is duplicated also
@@ -843,8 +844,8 @@ host_cpu_for_clang="$host_cpu"
case "$host_os" in case "$host_os" in
solaris*) solaris*)
build_gstreamer_1_0=yes using_freetype_fontconfig=yes
test_freetype=yes using_x11=yes
build_skia=yes build_skia=yes
_os=SunOS _os=SunOS
@@ -869,31 +870,24 @@ solaris*)
;; ;;
linux-gnu*|k*bsd*-gnu*) linux-gnu*|k*bsd*-gnu*)
build_gstreamer_1_0=yes using_freetype_fontconfig=yes
test_kf5=yes using_x11=yes
test_gtk3_kde5=yes
build_skia=yes build_skia=yes
test_gdb_index=yes test_gdb_index=yes
test_split_debug=yes test_split_debug=yes
if test "$enable_fuzzers" != yes; then if test "$enable_fuzzers" = yes; then
test_freetype=yes test_system_freetype=no
test_fontconfig=yes
else
test_freetype=no
test_fontconfig=no
BUILD_TYPE="$BUILD_TYPE FONTCONFIG FREETYPE"
fi fi
_os=Linux _os=Linux
;; ;;
gnu) gnu)
test_randr=no using_freetype_fontconfig=yes
test_xrender=no using_x11=no
_os=GNU _os=GNU
;; ;;
cygwin*|wsl*) cygwin*|wsl*)
# When building on Windows normally with MSVC under Cygwin, # When building on Windows normally with MSVC under Cygwin,
# configure thinks that the host platform (the platform the # configure thinks that the host platform (the platform the
# built code will run on) is Cygwin, even if it obviously is # built code will run on) is Cygwin, even if it obviously is
@@ -905,13 +899,8 @@ cygwin*|wsl*)
# look at $host etc that much, it mostly uses its own $_os # look at $host etc that much, it mostly uses its own $_os
# variable, set here in this case statement. # variable, set here in this case statement.
test_cups=no using_freetype_fontconfig=no
test_dbus=no using_x11=no
test_randr=no
test_xrender=no
test_freetype=no
test_fontconfig=no
test_openldap=no
build_skia=yes build_skia=yes
_os=WINNT _os=WINNT
@@ -926,11 +915,8 @@ cygwin*|wsl*)
;; ;;
darwin*|macos*) # macOS darwin*|macos*) # macOS
test_randr=no using_freetype_fontconfig=no
test_xrender=no using_x11=no
test_freetype=no
test_fontconfig=no
test_dbus=no
if test -n "$LODE_HOME" ; then if test -n "$LODE_HOME" ; then
mac_sanitize_path mac_sanitize_path
AC_MSG_NOTICE([sanitized the PATH to $PATH]) AC_MSG_NOTICE([sanitized the PATH to $PATH])
@@ -965,14 +951,11 @@ darwin*|macos*) # macOS
;; ;;
ios*) # iOS ios*) # iOS
using_freetype_fontconfig=no
using_vclplug=no
using_x11=no
build_crypto=no build_crypto=no
test_cmis=no test_cmis=no
test_randr=no
test_xrender=no
test_freetype=no
test_fontconfig=no
test_dbus=no
test_openldap=no
test_webdav=no test_webdav=no
if test -n "$LODE_HOME" ; then if test -n "$LODE_HOME" ; then
mac_sanitize_path mac_sanitize_path
@@ -980,7 +963,6 @@ ios*) # iOS
fi fi
enable_gpgmepp=no enable_gpgmepp=no
_os=iOS _os=iOS
test_cups=no
enable_mpl_subset=yes enable_mpl_subset=yes
enable_lotuswordpro=no enable_lotuswordpro=no
enable_coinmp=no enable_coinmp=no
@@ -1013,10 +995,8 @@ ios*) # iOS
;; ;;
freebsd*) freebsd*)
build_gstreamer_1_0=yes using_freetype_fontconfig=yes
test_kf5=yes using_x11=yes
test_gtk3_kde5=yes
test_freetype=yes
build_skia=yes build_skia=yes
AC_MSG_CHECKING([the FreeBSD operating system release]) AC_MSG_CHECKING([the FreeBSD operating system release])
if test -n "$with_os_version"; then if test -n "$with_os_version"; then
@@ -1041,44 +1021,49 @@ freebsd*)
;; ;;
*netbsd*) *netbsd*)
build_gstreamer_1_0=yes using_freetype_fontconfig=yes
test_kf5=yes using_x11=yes
test_gtk3_kde5=yes test_gtk3_kde5=no
test_freetype=yes
build_skia=yes build_skia=yes
PTHREAD_LIBS="-pthread -lpthread" PTHREAD_LIBS="-pthread -lpthread"
_os=NetBSD _os=NetBSD
;; ;;
aix*) aix*)
using_freetype_fontconfig=yes
using_x11=yes
test_randr=no test_randr=no
test_freetype=yes test_gstreamer_1_0=no
PTHREAD_LIBS=-pthread PTHREAD_LIBS=-pthread
_os=AIX _os=AIX
;; ;;
openbsd*) openbsd*)
test_freetype=yes using_freetype_fontconfig=yes
using_x11=yes
PTHREAD_CFLAGS="-D_THREAD_SAFE" PTHREAD_CFLAGS="-D_THREAD_SAFE"
PTHREAD_LIBS="-pthread" PTHREAD_LIBS="-pthread"
_os=OpenBSD _os=OpenBSD
;; ;;
dragonfly*) dragonfly*)
build_gstreamer_1_0=yes using_freetype_fontconfig=yes
test_kf5=yes using_x11=yes
test_gtk3_kde5=yes
test_freetype=yes
build_skia=yes build_skia=yes
PTHREAD_LIBS="-pthread" PTHREAD_LIBS="-pthread"
_os=DragonFly _os=DragonFly
;; ;;
linux-android*) linux-android*)
using_freetype_fontconfig=yes
using_headless_plugin=no
using_x11=no
build_crypto=no build_crypto=no
build_gstreamer_1_0=no test_system_freetype=no
test_webdav=no
enable_lotuswordpro=no enable_lotuswordpro=no
enable_mpl_subset=yes enable_mpl_subset=yes
enable_cairo_canvas=no
enable_coinmp=yes enable_coinmp=yes
enable_lpsolve=no enable_lpsolve=no
enable_mariadb_sdbc=no enable_mariadb_sdbc=no
@@ -1086,31 +1071,18 @@ linux-android*)
enable_odk=no enable_odk=no
enable_postgresql_sdbc=no enable_postgresql_sdbc=no
enable_python=no enable_python=no
test_cups=no
test_dbus=no
test_fontconfig=no
test_freetype=no
test_kf5=no
test_qt5=no
test_gtk3_kde5=no
test_openldap=no
test_randr=no
test_webdav=no
test_xrender=no
_os=Android _os=Android
AC_DEFINE(HAVE_FT_FACE_GETCHARVARIANTINDEX) AC_DEFINE(HAVE_FT_FACE_GETCHARVARIANTINDEX)
BUILD_TYPE="$BUILD_TYPE CAIRO FONTCONFIG FREETYPE"
;; ;;
haiku*) haiku*)
test_cups=no using_freetype_fontconfig=yes
test_dbus=no using_x11=no
test_randr=no test_gtk3_kde5=no
test_xrender=no test_kf5=yes
test_freetype=yes test_openldap=yes
enable_odk=no enable_odk=no
enable_gstreamer_1_0=no
enable_coinmp=no enable_coinmp=no
enable_pdfium=no enable_pdfium=no
enable_sdremote=no enable_sdremote=no
@@ -1120,27 +1092,19 @@ haiku*)
;; ;;
emscripten) emscripten)
build_gstreamer_1_0=no using_freetype_fontconfig=yes
enable_lpsolve=no using_x11=no
enable_report_builder=no enable_compiler_plugins=no
with_theme="breeze"
test_cmis=no test_cmis=no
test_cups=no
test_curl=no
test_dbus=no
test_fontconfig=no
test_freetype=no
test_gtk=no
test_randr=no
test_webdav=no test_webdav=no
test_xrender=no
enable_postgresql_sdbc=no
enable_firebird_sdbc=no enable_firebird_sdbc=no
enable_lpsolve=no
enable_mariadb_sdbc=no enable_mariadb_sdbc=no
enable_postgresql_sdbc=no
enable_report_builder=no
with_system_zlib=no with_system_zlib=no
with_theme="breeze"
_os=Emscripten _os=Emscripten
BUILD_TYPE="$BUILD_TYPE FONTCONFIG FREETYPE"
;; ;;
*) *)
@@ -1150,6 +1114,73 @@ esac
AC_SUBST(HOST_PLATFORM) AC_SUBST(HOST_PLATFORM)
if test -z "$using_x11" -o -z "$using_freetype_fontconfig"; then
AC_MSG_ERROR([You must set \$using_freetype_fontconfig and \$using_x11 for your platform])
fi
# Set defaults, if not set by platform
test "${test_cups+set}" = set || test_cups="$using_x11"
test "${test_dbus+set}" = set || test_dbus="$using_x11"
test "${test_gstreamer_1_0+set}" = set || test_gstreamer_1_0="$using_x11"
test "${test_gtk3+set}" = set || test_gtk3="$using_x11"
test "${test_gtk4+set}" = set || test_gtk4="$using_x11"
test "${test_kf5+set}" = set || test_kf5="$using_x11"
test "${test_openldap+set}" = set || test_openldap="$using_x11"
# don't handle test_qt5, so it can disable test_kf5 later
test "${test_randr+set}" = set || test_randr="$using_x11"
test "${test_xrender+set}" = set || test_xrender="$using_x11"
test "${using_headless_plugin+set}" = set || using_headless_plugin="$using_freetype_fontconfig"
test "${test_gtk3_kde5+set}" != set -a "$test_kf5" = yes -a "$test_gtk3" = yes && test_gtk3_kde5="yes"
test "${test_system_fontconfig+set}" != set -a "${test_system_freetype+set}" = set && test_system_fontconfig="$test_system_freetype"
test "${test_system_freetype+set}" != set -a "${test_system_fontconfig+set}" = set && test_system_freetype="$test_system_fontconfig"
# convenience / platform overriding "fixes"
# Don't sort!
test "$test_kf5" = yes -a "$test_qt5" = no && test_kf5=no
test "$test_kf5" = yes && test_qt5=yes
test "$test_gtk3" != yes -o "$test_kf5" != yes && test_gtk3_kde5=no
test "$using_freetype_fontconfig" = no && using_headless_plugin=no
test "$using_freetype_fontconfig" = yes && test_cairo=yes
# Keep in sync with the above $using_x11 depending test default list
disable_x11_tests()
{
test_cups=no
test_dbus=no
test_gstreamer_1_0=no
test_gtk3_kde5=no
test_gtk3=no
test_gtk4=no
test_kf5=no
test_openldap=no
test_qt5=no
test_randr=no
test_xrender=no
}
test "$using_x11" = yes && USING_X11=TRUE
if test "$using_freetype_fontconfig" = yes; then
if test "$using_headless_plugin" = yes; then
AC_DEFINE(ENABLE_HEADLESS)
ENABLE_HEADLESS=TRUE
fi
fi
AC_SUBST(ENABLE_HEADLESS)
AC_MSG_NOTICE([VCL platform uses freetype+fontconfig: $using_freetype_fontconfig])
AC_MSG_NOTICE([VCL platform uses headless plugin: $using_headless_plugin])
AC_MSG_NOTICE([VCL platform uses vclplug: $using_vclplug])
AC_MSG_NOTICE([VCL platform uses X11: $using_x11])
# ===================================================================
#
# End initial platform setup
#
# ===================================================================
if test "$_os" = "Android" ; then if test "$_os" = "Android" ; then
# Verify that the NDK and SDK options are proper # Verify that the NDK and SDK options are proper
if test -z "$with_android_ndk"; then if test -z "$with_android_ndk"; then
@@ -3674,7 +3705,6 @@ reg_get_value_64()
case "$host_os" in case "$host_os" in
cygwin*|wsl*) cygwin*|wsl*)
COM=MSC COM=MSC
USING_X11=
OS=WNT OS=WNT
RTL_OS=Windows RTL_OS=Windows
if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
@@ -4715,14 +4745,12 @@ AC_SUBST(ENABLE_OPTIMIZED_DEBUG)
# #
# determine CPUNAME, OS, ... # determine CPUNAME, OS, ...
# The USING_X11 flag tells whether the host os uses X by default. Can be overridden with the --without-x option.
# #
case "$host_os" in case "$host_os" in
aix*) aix*)
COM=GCC COM=GCC
CPUNAME=POWERPC CPUNAME=POWERPC
USING_X11=TRUE
OS=AIX OS=AIX
RTL_OS=AIX RTL_OS=AIX
RTL_ARCH=PowerPC RTL_ARCH=PowerPC
@@ -4736,7 +4764,6 @@ cygwin*|wsl*)
darwin*|macos*) darwin*|macos*)
COM=GCC COM=GCC
USING_X11=
OS=MACOSX OS=MACOSX
RTL_OS=MacOSX RTL_OS=MacOSX
P_SEP=: P_SEP=:
@@ -4767,7 +4794,6 @@ darwin*|macos*)
ios*) ios*)
COM=GCC COM=GCC
USING_X11=
OS=iOS OS=iOS
RTL_OS=iOS RTL_OS=iOS
P_SEP=: P_SEP=:
@@ -4789,7 +4815,6 @@ ios*)
dragonfly*) dragonfly*)
COM=GCC COM=GCC
USING_X11=TRUE
OS=DRAGONFLY OS=DRAGONFLY
RTL_OS=DragonFly RTL_OS=DragonFly
P_SEP=: P_SEP=:
@@ -4813,7 +4838,6 @@ dragonfly*)
freebsd*) freebsd*)
COM=GCC COM=GCC
USING_X11=TRUE
RTL_OS=FreeBSD RTL_OS=FreeBSD
OS=FREEBSD OS=FREEBSD
P_SEP=: P_SEP=:
@@ -4852,7 +4876,6 @@ freebsd*)
haiku*) haiku*)
COM=GCC COM=GCC
USING_X11=
GUIBASE=haiku GUIBASE=haiku
RTL_OS=Haiku RTL_OS=Haiku
OS=HAIKU OS=HAIKU
@@ -4877,7 +4900,6 @@ haiku*)
kfreebsd*) kfreebsd*)
COM=GCC COM=GCC
USING_X11=TRUE
OS=LINUX OS=LINUX
RTL_OS=kFreeBSD RTL_OS=kFreeBSD
P_SEP=: P_SEP=:
@@ -4902,7 +4924,6 @@ kfreebsd*)
linux-gnu*) linux-gnu*)
COM=GCC COM=GCC
USING_X11=TRUE
OS=LINUX OS=LINUX
RTL_OS=Linux RTL_OS=Linux
P_SEP=: P_SEP=:
@@ -5025,7 +5046,6 @@ linux-gnu*)
linux-android*) linux-android*)
COM=GCC COM=GCC
USING_X11=
OS=ANDROID OS=ANDROID
RTL_OS=Android RTL_OS=Android
P_SEP=: P_SEP=:
@@ -5060,7 +5080,6 @@ linux-android*)
*netbsd*) *netbsd*)
COM=GCC COM=GCC
USING_X11=TRUE
OS=NETBSD OS=NETBSD
RTL_OS=NetBSD RTL_OS=NetBSD
P_SEP=: P_SEP=:
@@ -5094,7 +5113,6 @@ linux-android*)
openbsd*) openbsd*)
COM=GCC COM=GCC
USING_X11=TRUE
OS=OPENBSD OS=OPENBSD
RTL_OS=OpenBSD RTL_OS=OpenBSD
P_SEP=: P_SEP=:
@@ -5119,7 +5137,6 @@ openbsd*)
solaris*) solaris*)
COM=GCC COM=GCC
USING_X11=TRUE
OS=SOLARIS OS=SOLARIS
RTL_OS=Solaris RTL_OS=Solaris
P_SEP=: P_SEP=:
@@ -5149,7 +5166,6 @@ solaris*)
emscripten*) emscripten*)
COM=GCC COM=GCC
USING_X11=
OS=EMSCRIPTEN OS=EMSCRIPTEN
RTL_OS=Emscripten RTL_OS=Emscripten
P_SEP=: P_SEP=:
@@ -5177,18 +5193,26 @@ fi
DISABLE_GUI="" DISABLE_GUI=""
if test "$enable_gui" = "no"; then if test "$enable_gui" = "no"; then
if test "$USING_X11" != TRUE; then if test "$using_x11" != yes; then
AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice with --disable-gui.]) AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice with --disable-gui.])
fi fi
USING_X11= USING_X11=
DISABLE_GUI=TRUE DISABLE_GUI=TRUE
AC_DEFINE(HAVE_FEATURE_UI,0) else
test_cairo=yes AC_DEFINE(HAVE_FEATURE_UI)
fi fi
AC_SUBST(DISABLE_GUI) AC_SUBST(DISABLE_GUI)
if test "$USING_X11" = TRUE; then if test "$using_x11" = yes; then
AC_DEFINE(USING_X11) if test "$USING_X11" = TRUE; then
AC_DEFINE(USING_X11)
else
disable_x11_tests
fi
else
if test "$USING_X11" = TRUE; then
AC_MSG_ERROR([Platform doesn't support X11 (\$using_x11), but \$USING_X11 is set!])
fi
fi fi
WORKDIR="${BUILDDIR}/workdir" WORKDIR="${BUILDDIR}/workdir"
@@ -5353,11 +5377,13 @@ if test "$cross_compiling" = "yes"; then
# Don't bother having configure look for stuff not needed for the build platform anyway # Don't bother having configure look for stuff not needed for the build platform anyway
./configure \ ./configure \
--build="$build_alias" \ --build="$build_alias" \
--disable-cairo-canvas \
--disable-cups \ --disable-cups \
--disable-firebird-sdbc \ --disable-firebird-sdbc \
--disable-gpgmepp \ --disable-gpgmepp \
--disable-gstreamer-1-0 \ --disable-gstreamer-1-0 \
--disable-gtk3 \ --disable-gtk3 \
--disable-gtk4 \
--disable-mariadb-sdbc \ --disable-mariadb-sdbc \
--disable-nss \ --disable-nss \
--disable-online-update \ --disable-online-update \
@@ -5600,28 +5626,6 @@ if test $_os != "WINNT" -a $_os != "Darwin"; then
fi fi
AC_SUBST(ENABLE_OOENV) AC_SUBST(ENABLE_OOENV)
if test "$USING_X11" != TRUE; then
# be sure to do not mess with unneeded stuff
test_randr=no
test_xrender=no
test_cups=no
test_dbus=no
build_gstreamer_1_0=no
test_kf5=no
test_qt5=no
test_gtk3_kde5=no
enable_cairo_canvas=no
fi
if test "$OS" = "HAIKU"; then
enable_cairo_canvas=yes
test_kf5=yes
fi
if test "$test_kf5" = "yes"; then
test_qt5=yes
fi
if test "$test_kf5" = "yes" -a "$enable_kf5" = "yes"; then if test "$test_kf5" = "yes" -a "$enable_kf5" = "yes"; then
if test "$enable_qt5" = "no"; then if test "$enable_qt5" = "no"; then
AC_MSG_ERROR([KF5 support depends on QT5, so it conflicts with --disable-qt5]) AC_MSG_ERROR([KF5 support depends on QT5, so it conflicts with --disable-qt5])
@@ -5652,11 +5656,18 @@ fi
AC_SUBST(ENABLE_CUPS) AC_SUBST(ENABLE_CUPS)
# fontconfig checks # fontconfig checks
if test "$test_fontconfig" = "yes"; then if test "$using_freetype_fontconfig" = yes; then
AC_MSG_CHECKING([which fontconfig to use])
fi
if test "$using_freetype_fontconfig" = yes -a "$test_system_fontconfig" != no; then
AC_MSG_RESULT([external])
PKG_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.4.1]) PKG_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.4.1])
SYSTEM_FONTCONFIG=TRUE SYSTEM_FONTCONFIG=TRUE
FilterLibs "${FONTCONFIG_LIBS}" FilterLibs "${FONTCONFIG_LIBS}"
FONTCONFIG_LIBS="${filteredlibs}" FONTCONFIG_LIBS="${filteredlibs}"
elif test "$using_freetype_fontconfig" = yes; then
AC_MSG_RESULT([internal])
BUILD_TYPE="$BUILD_TYPE FONTCONFIG"
fi fi
AC_SUBST(FONTCONFIG_CFLAGS) AC_SUBST(FONTCONFIG_CFLAGS)
AC_SUBST(FONTCONFIG_LIBS) AC_SUBST(FONTCONFIG_LIBS)
@@ -9301,8 +9312,11 @@ fi
dnl =================================================================== dnl ===================================================================
dnl Check whether freetype is available dnl Check whether freetype is available
dnl =================================================================== dnl ===================================================================
if test "$test_freetype" = "yes"; then if test "$using_freetype_fontconfig" = yes; then
AC_MSG_CHECKING([whether freetype is available]) AC_MSG_CHECKING([which freetype to use])
fi
if test "$using_freetype_fontconfig" = yes -a "$test_system_freetype" != no; then
AC_MSG_RESULT([external])
# FreeType has 3 different kinds of versions # FreeType has 3 different kinds of versions
# * release, like 2.4.10 # * release, like 2.4.10
# * libtool, like 13.0.7 (this what pkg-config returns) # * libtool, like 13.0.7 (this what pkg-config returns)
@@ -9315,13 +9329,15 @@ if test "$test_freetype" = "yes"; then
FilterLibs "${FREETYPE_LIBS}" FilterLibs "${FREETYPE_LIBS}"
FREETYPE_LIBS="${filteredlibs}" FREETYPE_LIBS="${filteredlibs}"
SYSTEM_FREETYPE=TRUE SYSTEM_FREETYPE=TRUE
else elif test "$using_freetype_fontconfig" = yes; then
AC_MSG_RESULT([internal])
FREETYPE_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/freetype/include" FREETYPE_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/freetype/include"
if test "x$ac_config_site_64bit_host" = xYES; then if test "x$ac_config_site_64bit_host" = xYES; then
FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib64 -lfreetype" FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib64 -lfreetype"
else else
FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib -lfreetype" FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib -lfreetype"
fi fi
BUILD_TYPE="$BUILD_TYPE FREETYPE"
fi fi
AC_SUBST(FREETYPE_CFLAGS) AC_SUBST(FREETYPE_CFLAGS)
AC_SUBST(FREETYPE_LIBS) AC_SUBST(FREETYPE_LIBS)
@@ -10648,15 +10664,6 @@ else
fi fi
fi fi
AC_MSG_CHECKING([whether to use X11])
dnl ***************************************
dnl testing for X libraries and includes...
dnl ***************************************
if test "$USING_X11" = TRUE; then
AC_DEFINE(HAVE_FEATURE_X11)
fi
AC_MSG_RESULT([$USING_X11])
if test "$USING_X11" = TRUE; then if test "$USING_X11" = TRUE; then
AC_PATH_X AC_PATH_X
AC_PATH_XTRA AC_PATH_XTRA
@@ -11502,7 +11509,9 @@ if test "$_os" = "WINNT"; then
elif test "$_os" = "Darwin"; then elif test "$_os" = "Darwin"; then
R="$R osx" R="$R osx"
elif test "$_os" = "iOS"; then elif test "$_os" = "iOS"; then
R="ios (builtin)" R="ios"
elif test "$_os" = Android; then
R="android"
fi fi
build_vcl_plugins="$R" build_vcl_plugins="$R"
@@ -11519,11 +11528,10 @@ dnl ===================================================================
GTK3_CFLAGS="" GTK3_CFLAGS=""
GTK3_LIBS="" GTK3_LIBS=""
if test "x$enable_gtk3" = "xyes" -o "x$enable_gtk3_kde5" = "xyes"; then if test "$test_gtk3" = yes -a "x$enable_gtk3" = "xyes" -o "x$enable_gtk3_kde5" = "xyes"; then
if test "$with_system_cairo" = no; then if test "$with_system_cairo" = no; then
add_warning 'Non-system cairo combined with gtk3 is assumed to cause trouble; proceed at your own risk.' add_warning 'Non-system cairo combined with gtk3 is assumed to cause trouble; proceed at your own risk.'
fi fi
: ${with_system_cairo:=yes}
PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.20 gtk+-unix-print-3.0 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo) PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.20 gtk+-unix-print-3.0 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo)
GTK3_CFLAGS=$(printf '%s' "$GTK3_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g") GTK3_CFLAGS=$(printf '%s' "$GTK3_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
GTK3_CFLAGS="$GTK3_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" GTK3_CFLAGS="$GTK3_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
@@ -11542,11 +11550,10 @@ AC_SUBST(GTK3_CFLAGS)
GTK4_CFLAGS="" GTK4_CFLAGS=""
GTK4_LIBS="" GTK4_LIBS=""
if test "x$enable_gtk4" = "xyes"; then if test "test_gtk4" = yes -a "x$enable_gtk4" = "xyes"; then
if test "$with_system_cairo" = no; then if test "$with_system_cairo" = no; then
add_warning 'Non-system cairo combined with gtk4 is assumed to cause trouble; proceed at your own risk.' add_warning 'Non-system cairo combined with gtk4 is assumed to cause trouble; proceed at your own risk.'
fi fi
: ${with_system_cairo:=yes}
PKG_CHECK_MODULES(GTK4, gtk4 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo atk) PKG_CHECK_MODULES(GTK4, gtk4 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo atk)
GTK4_CFLAGS=$(printf '%s' "$GTK4_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g") GTK4_CFLAGS=$(printf '%s' "$GTK4_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
GTK4_CFLAGS="$GTK4_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" GTK4_CFLAGS="$GTK4_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
@@ -11723,30 +11730,13 @@ if test "$enable_split_opt_features" = "yes"; then
fi fi
AC_SUBST(SPLIT_OPT_FEATURES) AC_SUBST(SPLIT_OPT_FEATURES)
if test $_os = Darwin -o $_os = WINNT -o $_os = iOS; 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
test_cairo=yes
ENABLE_CAIRO_CANVAS="TRUE"
AC_DEFINE(ENABLE_CAIRO_CANVAS)
fi
AC_SUBST(ENABLE_CAIRO_CANVAS)
dnl =================================================================== dnl ===================================================================
dnl Check whether the GStreamer libraries are available. dnl Check whether the GStreamer libraries are available.
dnl =================================================================== dnl ===================================================================
ENABLE_GSTREAMER_1_0="" ENABLE_GSTREAMER_1_0=""
if test "$build_gstreamer_1_0" = "yes"; then if test "$test_gstreamer_1_0" = yes; then
AC_MSG_CHECKING([whether to enable the GStreamer 1.0 avmedia backend]) AC_MSG_CHECKING([whether to enable the GStreamer 1.0 avmedia backend])
if test "$enable_avmedia" = yes -a "$enable_gstreamer_1_0" != no; then if test "$enable_avmedia" = yes -a "$enable_gstreamer_1_0" != no; then
@@ -12729,7 +12719,7 @@ then
the root of your Qt installation by exporting QT5DIR before running "configure".]) the root of your Qt installation by exporting QT5DIR before running "configure".])
fi fi
if test "$build_gstreamer_1_0" = "yes"; then if test "$test_gstreamer_1_0" = yes; then
PKG_CHECK_MODULES(QT5_GOBJECT,[gobject-2.0], [ PKG_CHECK_MODULES(QT5_GOBJECT,[gobject-2.0], [
QT5_HAVE_GOBJECT=1 QT5_HAVE_GOBJECT=1
AC_DEFINE(QT5_HAVE_GOBJECT) AC_DEFINE(QT5_HAVE_GOBJECT)
@@ -13114,15 +13104,9 @@ dnl ===================================================================
dnl Test whether to build cairo or rely on the system version dnl Test whether to build cairo or rely on the system version
dnl =================================================================== dnl ===================================================================
if test "$USING_X11" = TRUE; then
# Used in vcl/Library_vclplug_gen.mk
test_cairo=yes
fi
if test "$test_cairo" = "yes"; then if test "$test_cairo" = "yes"; then
AC_MSG_CHECKING([whether to use the system cairo]) AC_MSG_CHECKING([whether to use the system cairo])
: ${with_system_cairo:=$with_system_libs}
if test "$with_system_cairo" = "yes"; then if test "$with_system_cairo" = "yes"; then
SYSTEM_CAIRO=TRUE SYSTEM_CAIRO=TRUE
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
@@ -13145,16 +13129,20 @@ if test "$test_cairo" = "yes"; then
AC_LANG_POP([C]) AC_LANG_POP([C])
fi fi
else else
SYSTEM_CAIRO=
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
BUILD_TYPE="$BUILD_TYPE CAIRO" BUILD_TYPE="$BUILD_TYPE CAIRO"
fi fi
if test "$enable_cairo_canvas" != no; then
AC_DEFINE(ENABLE_CAIRO_CANVAS)
ENABLE_CAIRO_CANVAS=TRUE
fi
fi fi
AC_SUBST(SYSTEM_CAIRO)
AC_SUBST(CAIRO_CFLAGS) AC_SUBST(CAIRO_CFLAGS)
AC_SUBST(CAIRO_LIBS) AC_SUBST(CAIRO_LIBS)
AC_SUBST(ENABLE_CAIRO_CANVAS)
AC_SUBST(SYSTEM_CAIRO)
dnl =================================================================== dnl ===================================================================
dnl Test whether to use avahi dnl Test whether to use avahi

View File

@@ -3161,7 +3161,7 @@ static void doc_paintTile(LibreOfficeKitDocument* pThis,
return; return;
} }
#if defined(UNX) && !defined(MACOSX) && !defined(ENABLE_HEADLESS) #if defined(UNX) && !defined(MACOSX)
// Painting of zoomed or HiDPI spreadsheets is special, we actually draw everything at 100%, // Painting of zoomed or HiDPI spreadsheets is special, we actually draw everything at 100%,
// and only set cairo's (or CoreGraphic's, in the iOS case) scale factor accordingly, so that // and only set cairo's (or CoreGraphic's, in the iOS case) scale factor accordingly, so that

View File

@@ -1,8 +1,4 @@
--host=arm-linux-androideabi --host=arm-linux-androideabi
--disable-cairo-canvas
--disable-cups
--disable-gstreamer-1-0
--disable-randr
--without-export-validation --without-export-validation
--without-helppack-integration --without-helppack-integration
--without-junit --without-junit

View File

@@ -1,8 +1,4 @@
--host=aarch64-linux-android --host=aarch64-linux-android
--disable-cairo-canvas
--disable-cups
--disable-gstreamer-1-0
--disable-randr
--without-export-validation --without-export-validation
--without-helppack-integration --without-helppack-integration
--without-junit --without-junit

View File

@@ -1,8 +1,4 @@
--host=i686-linux-android --host=i686-linux-android
--disable-cairo-canvas
--disable-cups
--disable-gstreamer-1-0
--disable-randr
--without-export-validation --without-export-validation
--without-helppack-integration --without-helppack-integration
--without-junit --without-junit

View File

@@ -1,8 +1,4 @@
--host=x86_64-linux-android --host=x86_64-linux-android
--disable-cairo-canvas
--disable-cups
--disable-gstreamer-1-0
--disable-randr
--without-export-validation --without-export-validation
--without-helppack-integration --without-helppack-integration
--without-junit --without-junit

View File

@@ -512,7 +512,7 @@ vcl_headless_code= \
$(if $(filter-out iOS,$(OS)), \ $(if $(filter-out iOS,$(OS)), \
vcl/headless/svpbmp \ vcl/headless/svpbmp \
vcl/headless/svpgdi \ vcl/headless/svpgdi \
vcl/headless/svpdata \ $(if $(ENABLE_HEADLESS),vcl/headless/svpdata) \
vcl/headless/CustomWidgetDraw \ vcl/headless/CustomWidgetDraw \
) \ ) \
vcl/headless/svpdummies \ vcl/headless/svpdummies \

View File

@@ -46,10 +46,10 @@
#include <android/androidinst.hxx> #include <android/androidinst.hxx>
#endif #endif
#if !(defined _WIN32 || defined MACOSX)
#if USING_X11 #if USING_X11
#define DESKTOPDETECT #define DESKTOPDETECT
#endif #endif
#if ENABLE_HEADLESS
#define HEADLESS_VCLPLUG #define HEADLESS_VCLPLUG
#endif #endif

View File

@@ -24,10 +24,6 @@
#include <PhysicalFontFamily.hxx> #include <PhysicalFontFamily.hxx>
#include <sal/log.hxx> #include <sal/log.hxx>
#if !(defined(_WIN32) || defined(MACOSX) || defined(IOS))
#include <unx/glyphcache.hxx>
#endif
size_t ImplFontCache::IFSD_Hash::operator()( const FontSelectPattern& rFSD ) const size_t ImplFontCache::IFSD_Hash::operator()( const FontSelectPattern& rFSD ) const
{ {
return rFSD.hashCode(); return rFSD.hashCode();

View File

@@ -8,6 +8,7 @@
*/ */
#include <vcl/opengl/OpenGLHelper.hxx> #include <vcl/opengl/OpenGLHelper.hxx>
#include <config_vclplug.h>
#include <osl/file.hxx> #include <osl/file.hxx>
#include <rtl/bootstrap.hxx> #include <rtl/bootstrap.hxx>
@@ -38,7 +39,7 @@
#include <vcl/skia/SkiaHelper.hxx> #include <vcl/skia/SkiaHelper.hxx>
#include <vcl/glxtestprocess.hxx> #include <vcl/glxtestprocess.hxx>
#if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID && !defined HAIKU #if USING_X11
#include <opengl/x11/X11DeviceInfo.hxx> #include <opengl/x11/X11DeviceInfo.hxx>
#elif defined (_WIN32) #elif defined (_WIN32)
#include <opengl/win/WinDeviceInfo.hxx> #include <opengl/win/WinDeviceInfo.hxx>
@@ -200,7 +201,7 @@ namespace
OString getDeviceInfoString() OString getDeviceInfoString()
{ {
#if defined( SAL_UNX ) && !defined( MACOSX ) && !defined( IOS )&& !defined( ANDROID ) && !defined( HAIKU ) #if USING_X11
const X11OpenGLDeviceInfo aInfo; const X11OpenGLDeviceInfo aInfo;
return aInfo.GetOS() + return aInfo.GetOS() +
aInfo.GetOSRelease() + aInfo.GetOSRelease() +
@@ -762,7 +763,7 @@ bool OpenGLHelper::isDeviceDenylisted()
{ {
OpenGLZone aZone; OpenGLZone aZone;
#if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID && !defined HAIKU #if USING_X11
X11OpenGLDeviceInfo aInfo; X11OpenGLDeviceInfo aInfo;
bDenylisted = aInfo.isDeviceBlocked(); bDenylisted = aInfo.isDeviceBlocked();
SAL_INFO("vcl.opengl", "denylisted: " << bDenylisted); SAL_INFO("vcl.opengl", "denylisted: " << bDenylisted);

View File

@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/ */
#include <config_features.h> #include <config_vclplug.h>
#include <osl/mutex.hxx> #include <osl/mutex.hxx>
#include <sot/exchange.hxx> #include <sot/exchange.hxx>
@@ -498,7 +498,7 @@ Reference<XClipboard> GetSystemPrimarySelection()
try try
{ {
Reference<XComponentContext> xContext(comphelper::getProcessComponentContext()); Reference<XComponentContext> xContext(comphelper::getProcessComponentContext());
#if HAVE_FEATURE_X11 #if USING_X11
// A hack, making the primary selection available as an instance // A hack, making the primary selection available as an instance
// of the SystemClipboard service on X11: // of the SystemClipboard service on X11:
Sequence< Any > args(1); Sequence< Any > args(1);

View File

@@ -18,8 +18,8 @@
*/ */
#include <config_features.h>
#include <config_feature_desktop.h> #include <config_feature_desktop.h>
#include <config_vclplug.h>
#include <tools/time.hxx> #include <tools/time.hxx>
@@ -745,7 +745,7 @@ Reference< css::datatransfer::dnd::XDragSource > Window::GetDragSource()
aDropTargetSN = "com.sun.star.datatransfer.dnd.OleDropTarget"; aDropTargetSN = "com.sun.star.datatransfer.dnd.OleDropTarget";
aDragSourceAL[ 1 ] <<= static_cast<sal_uInt64>( reinterpret_cast<sal_IntPtr>(pEnvData->mpNSView) ); aDragSourceAL[ 1 ] <<= static_cast<sal_uInt64>( reinterpret_cast<sal_IntPtr>(pEnvData->mpNSView) );
aDropTargetAL[ 0 ] <<= static_cast<sal_uInt64>( reinterpret_cast<sal_IntPtr>(pEnvData->mpNSView) ); aDropTargetAL[ 0 ] <<= static_cast<sal_uInt64>( reinterpret_cast<sal_IntPtr>(pEnvData->mpNSView) );
#elif HAVE_FEATURE_X11 #elif USING_X11
aDragSourceSN = "com.sun.star.datatransfer.dnd.X11DragSource"; aDragSourceSN = "com.sun.star.datatransfer.dnd.X11DragSource";
aDropTargetSN = "com.sun.star.datatransfer.dnd.X11DropTarget"; aDropTargetSN = "com.sun.star.datatransfer.dnd.X11DropTarget";