summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Repository.mk2
-rw-r--r--RepositoryExternal.mk33
-rw-r--r--config_host.mk.in7
-rw-r--r--config_host/config_kde5.h.in10
-rw-r--r--config_host/config_vclplug.h.in1
-rw-r--r--configure.ac156
-rw-r--r--cui/Library_cui.mk1
-rw-r--r--scp2/InstallScript_setup_osl.mk2
-rw-r--r--scp2/Module_scp2.mk2
9 files changed, 212 insertions, 2 deletions
diff --git a/Repository.mk b/Repository.mk
index d133131551a0..cb35e3f89e19 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -281,8 +281,10 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,gnome, \
$(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,kde, \
$(if $(ENABLE_KDE4),kde4be1) \
+ $(if $(ENABLE_KDE5),kde5be1) \
$(if $(USING_X11), \
$(if $(ENABLE_KDE4),vclplug_kde4) \
+ $(if $(ENABLE_KDE5),vclplug_kde5) \
) \
))
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 44a89738fb74..38fe79a98907 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3034,6 +3034,39 @@ endef
endif # ENABLE_KDE4
+ifeq ($(ENABLE_KDE5),TRUE)
+
+define gb_LinkTarget__use_kde5
+$(call gb_LinkTarget_set_include,$(1),\
+ $(subst -isystem/,-isystem /,$(filter -I% -isystem%,$(subst -isystem /,-isystem/,$(KF5_CFLAGS)))) \
+ $$(INCLUDE) \
+)
+
+$(call gb_LinkTarget_add_defs,$(1),\
+ $(filter-out -I% -isystem%,$(subst -isystem /,-isystem/,$(KF5_CFLAGS))) \
+)
+
+$(call gb_LinkTarget_add_libs,$(1),\
+ $(KF5_LIBS) \
+)
+
+ifeq ($(COM),GCC)
+$(call gb_LinkTarget_add_cxxflags,$(1),\
+ -Wno-shadow \
+)
+endif
+
+endef
+
+else # !ENABLE_KDE5
+
+define gb_LinkTarget__use_kde5
+
+endef
+
+endif # ENABLE_KDE5
+
+
# PYTHON
# extra python_headers external because pyuno wrapper must not link python
ifneq ($(SYSTEM_PYTHON),)
diff --git a/config_host.mk.in b/config_host.mk.in
index 75298b966716..24d9cc4f533a 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -139,6 +139,7 @@ export ENABLE_GTK_PRINT=@ENABLE_GTK_PRINT@
export ENABLE_HEADLESS=@ENABLE_HEADLESS@
export ENABLE_JAVA=@ENABLE_JAVA@
export ENABLE_KDE4=@ENABLE_KDE4@
+export ENABLE_KDE5=@ENABLE_KDE5@
export ENABLE_LPSOLVE=@ENABLE_LPSOLVE@
export ENABLE_LTO=@ENABLE_LTO@
export ENABLE_LWP=@ENABLE_LWP@
@@ -294,6 +295,11 @@ export KDE4_LIBS=$(gb_SPACE)@KDE4_LIBS@
export KDE4_GLIB_CFLAGS=$(gb_SPACE)@KDE4_GLIB_CFLAGS@
export KDE4_GLIB_LIBS=$(gb_SPACE)@KDE4_GLIB_LIBS@
export KDE4_HAVE_GLIB=@KDE4_HAVE_GLIB@
+export KF5_CFLAGS=$(gb_SPACE)@KF5_CFLAGS@
+export KF5_LIBS=$(gb_SPACE)@KF5_LIBS@
+export KF5_GLIB_CFLAGS=$(gb_SPACE)@KF5_GLIB_CFLAGS@
+export KF5_GLIB_LIBS=$(gb_SPACE)@KF5_GLIB_LIBS@
+export KF5_HAVE_GLIB=@KF5_HAVE_GLIB@
export KRB5_LIBS=@KRB5_LIBS@
export LCMS2_CFLAGS=$(gb_SPACE)@LCMS2_CFLAGS@
export LCMS2_LIBS=$(gb_SPACE)@LCMS2_LIBS@
@@ -381,6 +387,7 @@ export MINGWCXX=@MINGWCXX@
export MINGWSTRIP=@MINGWSTRIP@
export ML_EXE=@ML_EXE@
export MOC4=@MOC4@
+export MOC5=@MOC5@
export MPL_SUBSET=@MPL_SUBSET@
export MSGFMT=@MSGFMT@
export MSGUNIQ=@MSGUNIQ@
diff --git a/config_host/config_kde5.h.in b/config_host/config_kde5.h.in
new file mode 100644
index 000000000000..01fa9d212789
--- /dev/null
+++ b/config_host/config_kde5.h.in
@@ -0,0 +1,10 @@
+/*
+Settings for KDE5 integration.
+*/
+
+#ifndef CONFIG_KDE5_H
+#define CONFIG_KDE5_H
+
+#define KF5_HAVE_GLIB 0
+
+#endif
diff --git a/config_host/config_vclplug.h.in b/config_host/config_vclplug.h.in
index 510d0d25229c..b7b9624cdf79 100644
--- a/config_host/config_vclplug.h.in
+++ b/config_host/config_vclplug.h.in
@@ -9,5 +9,6 @@ Settings about which X11 desktops have support enabled.
#define ENABLE_GTK 0
#define ENABLE_KDE4 0
+#define ENABLE_KDE5 0
#endif
diff --git a/configure.ac b/configure.ac
index 490d03e058cd..a14fded670a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -660,6 +660,7 @@ linux-gnu*|k*bsd*-gnu*)
build_gstreamer_1_0=yes
build_gstreamer_0_10=yes
test_kde4=yes
+ test_kde5=yes
if test "$enable_fuzzers" != yes; then
test_freetype=yes
test_fontconfig=yes
@@ -741,6 +742,7 @@ freebsd*)
build_gstreamer_1_0=yes
build_gstreamer_0_10=yes
test_kde4=yes
+ test_kde5=yes
test_freetype=yes
AC_MSG_CHECKING([the FreeBSD operating system release])
if test -n "$with_os_version"; then
@@ -769,6 +771,7 @@ freebsd*)
build_gstreamer_1_0=yes
build_gstreamer_0_10=yes
test_kde4=yes
+ test_kde5=yes
test_freetype=yes
PTHREAD_LIBS="-pthread -lpthread"
_os=NetBSD
@@ -794,6 +797,7 @@ dragonfly*)
build_gstreamer_1_0=yes
build_gstreamer_0_10=yes
test_kde4=yes
+ test_kde5=yes
test_freetype=yes
PTHREAD_LIBS="-pthread"
_os=DragonFly
@@ -817,6 +821,7 @@ linux-android*)
test_freetype=no
test_gtk=no
test_kde4=no
+ test_kde5=no
test_randr=no
test_xrender=no
_os=Android
@@ -1257,6 +1262,12 @@ AC_ARG_ENABLE(kde4,
KDE4 are available.]),
,)
+AC_ARG_ENABLE(kde5,
+ AS_HELP_STRING([--enable-kde5],
+ [Determines whether to use Qt5/KF5 vclplug on platforms where Qt5 and
+ KF5 are available.]),
+,)
+
libo_FUZZ_ARG_ENABLE(gui,
AS_HELP_STRING([--disable-gui],
[Disable use of X11 or Wayland to reduce dependencies. Not related to the --headless
@@ -4597,6 +4608,7 @@ if test "$USING_X11" != TRUE; then
build_gstreamer_1_0=no
build_gstreamer_0_10=no
test_kde4=no
+ test_kde5=no
enable_cairo_canvas=no
fi
@@ -9791,6 +9803,13 @@ if test "x$enable_kde4" = "xyes"; then
fi
AC_SUBST(ENABLE_KDE4)
+ENABLE_KDE5=""
+if test "x$enable_kde5" = "xyes"; then
+ ENABLE_KDE5="TRUE"
+ AC_DEFINE(ENABLE_KDE5)
+ R="$R kde5"
+fi
+AC_SUBST(ENABLE_KDE5)
build_vcl_plugins="$R"
if test -z "$build_vcl_plugins"; then
@@ -10872,6 +10891,142 @@ AC_SUBST(KDE4_GLIB_LIBS)
AC_SUBST(KDE4_HAVE_GLIB)
dnl ===================================================================
+dnl KDE5 Integration
+dnl ===================================================================
+
+KF5_CFLAGS=""
+KF5_LIBS=""
+QMAKE5="qmake"
+KF5_CONFIG="kf5-config"
+MOC5="moc"
+KF5_GLIB_CFLAGS=""
+KF5_GLIB_LIBS=""
+KF5_HAVE_GLIB=""
+if test "$test_kde5" = "yes" -a "$ENABLE_KDE5" = "TRUE"; then
+ qt5_incdirs="$QT5INC /usr/include/qt5 /usr/include $x_includes"
+ qt5_libdirs="$QT5LIB /usr/lib/qt5 /usr/lib $x_libraries"
+
+ kf5_incdirs="$KF5INC /usr/include /usr/include/KF5 $x_includes"
+ kf5_libdirs="$KF5LIB /usr/lib /usr/lib/kf5 /usr/lib/kf5/devel $x_libraries"
+
+ if test -n "$supports_multilib"; then
+ qt5_libdirs="$qt5_libdirs /usr/lib64/qt5 /usr/lib64/qt /usr/lib64"
+ kf5_libdirs="$kf5_libdirs /usr/lib64 /usr/lib64/kf5 /usr/lib64/kf5/devel"
+ fi
+
+ qt5_test_include="QtWidgets/qapplication.h"
+ qt5_test_library="libQt5Widgets.so"
+ kf5_test_include="kcoreaddons_version.h"
+ kf5_test_library="libKF5CoreAddons.so"
+
+ dnl Check for qmake
+ AC_PATH_PROGS( QMAKE5, [qmake-qt5 qmake], no, [$QT5DIR/bin:$PATH] )
+ if test "$QMAKE5" != "no"; then
+ qt5_incdirs="`$QMAKE5 -query QT_INSTALL_HEADERS` $qt5_incdirs"
+ qt5_libdirs="`$QMAKE5 -query QT_INSTALL_LIBS` $qt5_libdirs"
+ fi
+
+ AC_MSG_CHECKING([for Qt5 headers])
+ qt5_incdir="no"
+ for inc_dir in $qt5_incdirs; do
+ if test -r "$inc_dir/$qt5_test_include"; then
+ qt5_incdir="$inc_dir"
+ break
+ fi
+ done
+ AC_MSG_RESULT([$qt5_incdir])
+ if test "x$qt5_incdir" = "xno"; then
+ AC_MSG_ERROR([Qt5 headers not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
+ fi
+
+ AC_MSG_CHECKING([for Qt5 libraries])
+ qt5_libdir="no"
+ for lib_dir in $qt5_libdirs; do
+ if test -r "$lib_dir/$qt5_test_library"; then
+ qt5_libdir="$lib_dir"
+ break
+ fi
+ done
+ AC_MSG_RESULT([$qt5_libdir])
+ if test "x$qt5_libdir" = "xno"; then
+ AC_MSG_ERROR([Qt5 libraries not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
+ fi
+ kf5_libdirs="$qt5_libdir $kf5_libdirs"
+
+ dnl Check for Meta Object Compiler
+
+ AC_PATH_PROGS( MOC5, [moc-qt5 moc], no, [`dirname $qt5_libdir`/bin:$QT5DIR/bin:$PATH] )
+ if test "$MOC5" = "no"; then
+ AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify
+the root of your Qt installation by exporting QT5DIR before running "configure".])
+ fi
+
+ dnl kf5 KDE4 support compatibility installed
+ AC_PATH_PROG( KF5_CONFIG, $KF5_CONFIG, no, )
+ if test "$KF5_CONFIG" != "no"; then
+ kf5_incdirs="`$KF5_CONFIG --path include` $kf5_incdirs"
+ kf5_libdirs="`$KF5_CONFIG --path lib` $kf5_libdirs"
+ fi
+
+ dnl Check for KF5 headers
+ AC_MSG_CHECKING([for KF5 headers])
+ kf5_incdir="no"
+ for kf5_check in $kf5_incdirs; do
+ if test -r "$kf5_check/$kf5_test_include"; then
+ kf5_incdir="$kf5_check"
+ break
+ fi
+ done
+ AC_MSG_RESULT([$kf5_incdir])
+ if test "x$kf5_incdir" = "xno"; then
+ AC_MSG_ERROR([KF5 headers not found. Please specify the root of your KF5 installation by exporting KF5DIR before running "configure".])
+ fi
+
+ dnl Check for KF5 libraries
+ AC_MSG_CHECKING([for KF5 libraries])
+ kf5_libdir="no"
+ for kf5_check in $kf5_libdirs; do
+ if test -r "$kf5_check/$kf5_test_library"; then
+ kf5_libdir="$kf5_check"
+ break
+ fi
+ done
+
+ AC_MSG_RESULT([$kf5_libdir])
+ if test "x$kf5_libdir" = "xno"; then
+ AC_MSG_ERROR([KF5 libraries not found. Please specify the root of your KF5 installation by exporting KF5DIR before running "configure".])
+ fi
+
+ PKG_CHECK_MODULES(KF5_XCB,[xcb],,[AC_MSG_ERROR([XCB not installed])])
+
+ KF5_CFLAGS="-I$kf5_incdir -I$kf5_incdir/KCoreAddons -I$kf5_incdir/KI18n -I$kf5_incdir/KConfigCore -I$kf5_incdir/KWindowSystem -I$kf5_incdir/KIOCore -I$qt5_incdir -I$qt5_incdir/QtCore -I$qt5_incdir/QtGui -I$qt5_incdir/QtWidgets -I$qt5_incdir/QtNetwork -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT $KF5_XCB_CFLAGS"
+ KF5_LIBS="-L$kf5_libdir -lKF5CoreAddons -lKF5I18n -lKF5ConfigCore -lKF5WindowSystem -lKF5KIOCore -L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network -lQt5X11Extras $KF5_XCB_LIBS"
+ KF5_CFLAGS=$(printf '%s' "$KF5_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
+
+ AC_LANG_PUSH([C++])
+ save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $KF5_CFLAGS"
+ AC_MSG_CHECKING([whether KDE is >= 5.0])
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <kcoreaddons_version.h>
+
+int main(int argc, char **argv) {
+ if (KCOREADDONS_VERSION_MAJOR == 5 && KCOREADDONS_VERSION_MINOR >= 0) return 0;
+ else return 1;
+}
+ ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([KDE version too old])],[])
+ CXXFLAGS=$save_CXXFLAGS
+ AC_LANG_POP([C++])
+
+fi
+AC_SUBST(KF5_CFLAGS)
+AC_SUBST(KF5_LIBS)
+AC_SUBST(MOC5)
+AC_SUBST(KF5_GLIB_CFLAGS)
+AC_SUBST(KF5_GLIB_LIBS)
+AC_SUBST(KF5_HAVE_GLIB)
+
+dnl ===================================================================
dnl Test whether to include Evolution 2 support
dnl ===================================================================
AC_MSG_CHECKING([whether to enable evolution 2 support])
@@ -12409,6 +12564,7 @@ AC_CONFIG_HEADERS([config_host/config_liblangtag.h])
AC_CONFIG_HEADERS([config_host/config_locales.h])
AC_CONFIG_HEADERS([config_host/config_mpl.h])
AC_CONFIG_HEADERS([config_host/config_kde4.h])
+AC_CONFIG_HEADERS([config_host/config_kde5.h])
AC_CONFIG_HEADERS([config_host/config_oox.h])
AC_CONFIG_HEADERS([config_host/config_options.h])
AC_CONFIG_HEADERS([config_host/config_options_calc.h])
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index 9b7cd70c9436..b057347a9b92 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -22,6 +22,7 @@ $(eval $(call gb_Library_set_precompiled_header,cui,$(SRCDIR)/cui/inc/pch/precom
$(eval $(call gb_Library_add_defs,cui,\
$(if $(filter TRUE,$(ENABLE_GTK)),-DENABLE_GTK) \
$(if $(filter TRUE,$(ENABLE_KDE4)),-DENABLE_KDE4) \
+ $(if $(filter TRUE,$(ENABLE_KDE5)),-DENABLE_KDE5) \
))
$(eval $(call gb_Library_use_custom_headers,cui,\
diff --git a/scp2/InstallScript_setup_osl.mk b/scp2/InstallScript_setup_osl.mk
index 63121d2cdc75..6a472238acc3 100644
--- a/scp2/InstallScript_setup_osl.mk
+++ b/scp2/InstallScript_setup_osl.mk
@@ -35,7 +35,7 @@ $(eval $(call gb_InstallScript_use_modules,setup_osl,\
$(if $(filter TRUE,$(ENABLE_EVOAB2) $(ENABLE_GIO) $(ENABLE_GTK) $(ENABLE_GTK3)),\
scp2/gnome \
) \
- $(if $(filter TRUE,$(ENABLE_KDE4)),\
+ $(if $(filter TRUE,$(ENABLE_KDE4) $(ENABLE_KDE5)),\
scp2/kde \
) \
$(if $(filter TRUE,$(ENABLE_ONLINE_UPDATE)),\
diff --git a/scp2/Module_scp2.mk b/scp2/Module_scp2.mk
index f2bc6f45c3c4..daabb5b8ea68 100644
--- a/scp2/Module_scp2.mk
+++ b/scp2/Module_scp2.mk
@@ -39,7 +39,7 @@ $(eval $(call gb_Module_add_targets,scp2,\
$(if $(filter TRUE,$(ENABLE_EVOAB2) $(ENABLE_GIO) $(ENABLE_GTK) $(ENABLE_GTK3)),\
InstallModule_gnome \
) \
- $(if $(filter TRUE,$(ENABLE_KDE4)),\
+ $(if $(filter TRUE,$(ENABLE_KDE4) $(ENABLE_KDE5)),\
InstallModule_kde \
) \
))