diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2017-08-11 11:47:01 +0200 |
---|---|---|
committer | Katarina Behrens <Katarina.Behrens@cib.de> | 2017-08-11 16:43:14 +0200 |
commit | 19805f85b35672e6d0ee16f8fb4b79a3e94fc05d (patch) | |
tree | 96ccdb549c4cf3dd910636c622924eef1eca840c | |
parent | 244f60531260cf6e88e764b5c271d5c9183b5d1a (diff) |
Build with kde5, first stab
this is largely based on jmux's work
Change-Id: I5897f3ecb90f83a29e0824bfe7a0ea875347e360
-rw-r--r-- | Repository.mk | 2 | ||||
-rw-r--r-- | RepositoryExternal.mk | 33 | ||||
-rw-r--r-- | config_host.mk.in | 7 | ||||
-rw-r--r-- | config_host/config_kde5.h.in | 10 | ||||
-rw-r--r-- | config_host/config_vclplug.h.in | 1 | ||||
-rw-r--r-- | configure.ac | 156 | ||||
-rw-r--r-- | cui/Library_cui.mk | 1 | ||||
-rw-r--r-- | scp2/InstallScript_setup_osl.mk | 2 | ||||
-rw-r--r-- | scp2/Module_scp2.mk | 2 |
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 \ ) \ )) |