Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
This commit is contained in:
Andreas Müller
2015-02-02 16:12:00 +01:00
parent 37ded77d14
commit a56cd7c233
3 changed files with 321 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
From f2b5981d848d700212fc30d719c30db6d57cd2e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 2 Feb 2015 14:28:10 +0100
Subject: [PATCH] fix build for qtbase without session management
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
main.cpp | 8 +++++++-
workspace.cpp | 11 ++++++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/main.cpp b/main.cpp
index 44d8c49..0cb9e44 100644
--- a/main.cpp
+++ b/main.cpp
@@ -360,7 +360,13 @@ void Application::createWorkspace()
// critical startup section where x errors cause kwin to abort.
// create workspace.
- (void) new Workspace(isSessionRestored());
+ (void) new Workspace(
+#ifndef QT_NO_SESSIONMANAGER
+ isSessionRestored()
+#else
+ false
+#endif
+ );
}
void Application::createAtoms()
diff --git a/workspace.cpp b/workspace.cpp
index 7cbe81e..66c603b 100644
--- a/workspace.cpp
+++ b/workspace.cpp
@@ -277,8 +277,11 @@ void Workspace::init()
// Extra NETRootInfo instance in Client mode is needed to get the values of the properties
NETRootInfo client_info(connection(), NET::ActiveWindow | NET::CurrentDesktop);
int initial_desktop;
+#ifndef QT_NO_SESSIONMANAGER
if (!qApp->isSessionRestored())
+#endif // QT_NO_SESSIONMANAGER
initial_desktop = client_info.currentDesktop();
+#ifndef QT_NO_SESSIONMANAGER
else {
#if KWIN_QT5_PORTING
KConfigGroup group(kapp->sessionConfig(), "Session");
@@ -287,6 +290,7 @@ void Workspace::init()
initial_desktop = 1;
#endif
}
+#endif // QT_NO_SESSIONMANAGER
if (!VirtualDesktopManager::self()->setCurrent(initial_desktop))
VirtualDesktopManager::self()->setCurrent(1);
@@ -307,7 +311,9 @@ void Workspace::init()
active_client = NULL;
rootInfo->setActiveWindow(None);
focusToNull();
+#ifndef QT_NO_SESSIONMANAGER
if (!qApp->isSessionRestored())
+#endif // QT_NO_SESSIONMANAGER
++block_focus; // Because it will be set below
{
@@ -372,7 +378,10 @@ void Workspace::init()
} // End updates blocker block
Client* new_active_client = NULL;
- if (!qApp->isSessionRestored()) {
+#ifndef QT_NO_SESSIONMANAGER
+ if (!qApp->isSessionRestored())
+#endif
+ {
--block_focus;
new_active_client = findClient(Predicate::WindowMatch, client_info.activeWindow());
}
--
1.8.3.1

View File

@@ -0,0 +1,148 @@
From f72c60cb99105556969c06a1008c2708b9d07da3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Wed, 10 Dec 2014 17:04:24 +0100
Subject: [PATCH] Add X11-less support for pure wayland environments
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++++------------------------
1 file changed, 48 insertions(+), 34 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a3e547..288b072 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,7 +25,6 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
Script
UiTools
Widgets
- X11Extras
)
find_package(Qt5Test ${QT_MIN_VERSION} CONFIG QUIET)
@@ -150,35 +149,40 @@ set_package_properties(XKB PROPERTIES
find_package(X11)
set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
URL "http://www.x.org"
- TYPE REQUIRED
+ TYPE OPTIONAL
)
-# All the required XCB components
-find_package(XCB
- REQUIRED COMPONENTS
- XCB
- XFIXES
- DAMAGE
- COMPOSITE
- SHAPE
- SYNC
- RENDER
- RANDR
- KEYSYMS
- IMAGE
- SHM
- XTEST
- GLX
- OPTIONAL_COMPONENTS
- ICCCM
-)
-set_package_properties(XCB PROPERTIES TYPE REQUIRED)
+set(HAVE_X11 ${X11_FOUND})
+
+if(HAVE_X11)
+ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS X11Extras)
+ # All the required XCB components
+ find_package(XCB
+ REQUIRED COMPONENTS
+ XCB
+ XFIXES
+ DAMAGE
+ COMPOSITE
+ SHAPE
+ SYNC
+ RENDER
+ RANDR
+ KEYSYMS
+ IMAGE
+ SHM
+ XTEST
+ GLX
+ OPTIONAL_COMPONENTS
+ ICCCM
+ )
+ set_package_properties(XCB PROPERTIES TYPE REQUIRED)
-# and the optional XCB dependencies
-if (XCB_ICCCM_VERSION VERSION_LESS "0.4")
- set(XCB_ICCCM_FOUND FALSE)
+ # and the optional XCB dependencies
+ if (XCB_ICCCM_VERSION VERSION_LESS "0.4")
+ set(XCB_ICCCM_FOUND FALSE)
+ endif()
+ add_feature_info("XCB-ICCCM" XCB_ICCCM_FOUND "Required for building test applications for KWin")
endif()
-add_feature_info("XCB-ICCCM" XCB_ICCCM_FOUND "Required for building test applications for KWin")
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
@@ -438,9 +442,12 @@ set(kwin_QT_LIBS
Qt5::DBus
Qt5::Quick
Qt5::Script
- Qt5::X11Extras
)
+if(HAVE_X11)
+ set(kwin_QT_LIBS Qt5::X11Extras)
+endif()
+
set(kwin_KDE_LIBS
KF5::ConfigCore
KF5::CoreAddons
@@ -504,10 +511,15 @@ set(kwinLibs
${kwin_OWN_LIBS}
${kwin_QT_LIBS}
${kwin_KDE_LIBS}
- ${kwin_XLIB_LIBS}
- ${kwin_XCB_LIBS}
)
+if(HAVE_X11)
+ set(kwinLibs
+ ${kwin_XLIB_LIBS}
+ ${kwin_XCB_LIBS}
+ )
+endif()
+
if(HAVE_WAYLAND)
set(kwinLibs ${kwinLibs} ${kwin_WAYLAND_LIBS})
if(KWIN_HAVE_EGL AND Wayland_Egl_FOUND)
@@ -537,12 +549,14 @@ elseif(KWIN_BUILD_OPENGLES)
set_target_properties(kwin PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")
endif()
-kf5_add_kdeinit_executable(kwin_x11 main_x11.cpp)
-target_link_libraries(kdeinit_kwin_x11 kwin)
+if(HAVE_X11)
+ kf5_add_kdeinit_executable(kwin_x11 main_x11.cpp)
+ target_link_libraries(kdeinit_kwin_x11 kwin)
-install(TARGETS kwin ${INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP )
-install(TARGETS kdeinit_kwin_x11 ${INSTALL_TARGETS_DEFAULT_ARGS} )
-install(TARGETS kwin_x11 ${INSTALL_TARGETS_DEFAULT_ARGS} )
+ install(TARGETS kwin ${INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP )
+ install(TARGETS kdeinit_kwin_x11 ${INSTALL_TARGETS_DEFAULT_ARGS} )
+ install(TARGETS kwin_x11 ${INSTALL_TARGETS_DEFAULT_ARGS} )
+endif()
if(HAVE_WAYLAND)
kf5_add_kdeinit_executable(kwin_wayland main_wayland.cpp)
--
1.8.3.1

View File

@@ -0,0 +1,91 @@
SUMMARY = "Support for bookmarks and the XBEL format"
LICENSE = "LGPLv2.1 & GFDL-1.2"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=5c213a7de3f013310bd272cdb6eb7a24 \
file://COPYING.DOC;md5=ad1419ecc56e060eccf8184a87c4285f \
"
REQUIRED_DISTRO_FEATURES = "x11"
inherit kde cmake-lib
DEPENDS += " \
kconfig \
kconfigwidgets \
kcoreaddons \
kcrash \
kglobalaccel \
ki18n \
kinit \
knotifications \
kservice \
plasma-framework \
kwidgetsaddons \
kwindowsystem \
\
kcompletion \
kdeclarative \
kcmutils \
kio \
knewstuff \
kxmlgui \
kdecoration \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "virtual/xserver qtx11extras libepoxy", "",d)} \
"
# this condition matches always currently - it is kept in this way as a marker
DEPENDS += " \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "virtual/xserver qtx11extras libepoxy", "",d)} \
"
# REVISIT: PACKAGECONFIG for optionals
DEPENDS += " \
kwayland \
kactivities \
kdoctools \
virtual/egl \
"
SRCREV = "3b6ab89617fd8b94bc926055a13df772036b33d2"
SRC_URI += "file://0001-fix-build-for-qtbase-without-session-management.patch"
# REVISIT: this should be fixed in meta-fsl-arm
CXXFLAGS_append_mx6 = " -DLINUX \
${@base_contains('DISTRO_FEATURES', 'x11', '', \
base_contains('DISTRO_FEATURES', 'wayland', \
'-DEGL_API_WL -DEGL_API_FB', '', d), d)}"
# cross libs / headers
CMAKE_HIDE_ERROR[1] = "KF5Win, -S${libdir}/lib, -S${STAGING_LIBDIR}/lib"
CMAKE_HIDE_ERROR[2] = "KF5Win, -S${includedir}, -S${STAGING_INCDIR}"
FILES_${PN} += " \
${datadir}/config.kcfg \
${datadir}/kservices5 \
${datadir}/kwincompositing \
${datadir}/dbus-1 \
${datadir}/icons \
${datadir}/*5 \
${libdir}/plugins \
${libdir}/qml \
${libdir}/kconf_update_bin \
"
# taken from bitbake.conf with lucky modification: all lt libraries end with s.so
# only move them to -dev package
FILES_SOLIBSDEV = "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*s${SOLIBSDEV}"
FILES_${PN} += " \
${libdir}/*.so \
"
FILES_${PN}-dbg += " \
${libdir}/*/.debug \
${libdir}/*/*/.debug \
${libdir}/*/*/*/*/.debug \
${libdir}/*/*/*/*/*/.debug \
${libdir}/*/*/*/*/*/*/.debug \
"