libkscreen: use sources from master branch for x11 and wayland

there is no wayland backend so evt. revisit to port sebas/wayland branch

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
This commit is contained in:
Andreas Müller
2015-01-27 11:03:34 +01:00
parent a7e0296f2f
commit d81bb70031
2 changed files with 130 additions and 97 deletions

View File

@@ -1,6 +1,6 @@
From ca1027a2a317e414192647dc295f5dd08f6156b8 Mon Sep 17 00:00:00 2001
From 72341abc7360dc8b28e9f05382222a0c8f433ea7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 24 Nov 2014 10:16:50 +0100
Date: Tue, 27 Jan 2015 10:55:30 +0100
Subject: [PATCH] fix configuration/build on x-less systems
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -8,73 +8,50 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
CMakeLists.txt | 33 +++++++++++++++++++--------------
backends/CMakeLists.txt | 6 +++---
backends/qscreen/CMakeLists.txt | 17 ++++++++++++-----
src/CMakeLists.txt | 6 +++++-
src/backendloader.cpp | 11 ++++++++++-
5 files changed, 49 insertions(+), 24 deletions(-)
CMakeLists.txt | 11 ++++++++---
backends/CMakeLists.txt | 6 +++---
backends/qscreen/CMakeLists.txt | 17 ++++++++++++-----
src/CMakeLists.txt | 23 ++++++++++++++++-------
src/backendlauncher/CMakeLists.txt | 23 ++++++++++++++++-------
src/backendlauncher/backendloader.cpp | 13 +++++++++----
6 files changed, 64 insertions(+), 29 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 93c1f1e..e8aca15 100644
index a915140..9bf94e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,8 +14,26 @@ include(ECMGenerateHeaders)
@@ -15,9 +15,6 @@ include(ECMGenerateHeaders)
include(FeatureSummary)
include(CheckCXXCompilerFlag)
+find_package(XCB COMPONENTS XCB RANDR)
+set_package_properties(XCB PROPERTIES
+ TYPE OPTIONAL
+ PURPOSE "Required for building XRandR 1.1 backend"
+)
+
+find_package(X11)
+set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
+ URL "http://www.x.org"
+ TYPE OPTIONAL
+ PURPOSE "Required for building XRandR 1.2 backend"
+)
+
set(REQUIRED_QT_VERSION 5.2.0)
-find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Gui Test X11Extras)
-set(REQUIRED_QT_VERSION 5.2.0)
-find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core DBus Gui Test X11Extras)
-
find_package(XCB COMPONENTS XCB RANDR)
set_package_properties(XCB PROPERTIES
TYPE OPTIONAL
@@ -31,6 +28,14 @@ set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
PURPOSE "Required for building XRandR 1.2 backend"
)
+set(REQUIRED_QT_VERSION 5.2.0)
+if (XCB_FOUND AND X11_XCB_FOUND)
+ add_definitions(-DHAVE_XCB)
+ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Gui Test X11Extras)
+ add_definitions(-DHAVE_X11)
+ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core DBus Gui Test X11Extras)
+else()
+ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Gui Test)
+ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core DBus Gui Test)
+endif()
find_package(Wayland 1.2 COMPONENTS Client Cursor)
set_package_properties(Wayland PROPERTIES
@@ -36,19 +54,6 @@ else()
set(ENABLE_WAYLAND FALSE)
endif()
-find_package(XCB COMPONENTS XCB RANDR)
-set_package_properties(XCB PROPERTIES
- TYPE OPTIONAL
- PURPOSE "Required for building XRandR 1.1 backend"
-)
-
-find_package(X11)
-set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
- URL "http://www.x.org"
- TYPE OPTIONAL
- PURPOSE "Required for building XRandR 1.2 backend"
-)
-
set(KF5_VERSION "5.0.91") #When we are happy with the api, we can sync with frameworks
+
set(KF5_VERSION ${PROJECT_VERSION}) #When we are happy with the api, we can sync with frameworks
ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KSCREEN
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kscreen_version.h"
diff --git a/backends/CMakeLists.txt b/backends/CMakeLists.txt
index ba0cc74..c392978 100644
index ab160e0..611d63b 100644
--- a/backends/CMakeLists.txt
+++ b/backends/CMakeLists.txt
@@ -8,7 +8,7 @@ else()
message(STATUS "Not building Wayland backend")
endif()
@@ -1,6 +1,6 @@
add_subdirectory(fake)
add_subdirectory(qscreen)
-add_subdirectory(xrandr)
-# if (XCB_FOUND AND X11_XCB_FOUND)
+if (XCB_FOUND AND X11_XCB_FOUND)
@@ -83,7 +60,7 @@ index ba0cc74..c392978 100644
-# endif(XCB_FOUND AND X11_XCB_FOUND)
+endif(XCB_FOUND AND X11_XCB_FOUND)
diff --git a/backends/qscreen/CMakeLists.txt b/backends/qscreen/CMakeLists.txt
index 1342d4f..c4e7b44 100644
index 1342d4f..ab5c4fb 100644
--- a/backends/qscreen/CMakeLists.txt
+++ b/backends/qscreen/CMakeLists.txt
@@ -12,10 +12,17 @@ set(qscreen_SRCS
@@ -96,73 +73,128 @@ index 1342d4f..c4e7b44 100644
- KF5::Screen
-)
+if (XCB_FOUND AND X11_XCB_FOUND)
+ target_link_libraries(KSC_QScreen Qt5::Core
+ Qt5::Gui
+ Qt5::X11Extras
+ KF5::Screen
+ )
+ target_link_libraries(KSC_QScreen Qt5::Core
+ Qt5::Gui
+ Qt5::X11Extras
+ KF5::Screen
+ )
+else()
+ target_link_libraries(KSC_QScreen Qt5::Core
+ Qt5::Gui
+ KF5::Screen
+ )
+ target_link_libraries(KSC_QScreen Qt5::Core
+ Qt5::Gui
+ KF5::Screen
+ )
+endif()
install(TARGETS KSC_QScreen DESTINATION ${PLUGIN_INSTALL_DIR}/kf5/kscreen/)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 460022f..e6dcfd7 100644
index 3b73de5..079f28c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -13,7 +13,11 @@ set(libkscreen_SRCS
@@ -24,13 +24,22 @@ qt5_add_dbus_interface(libkscreen_SRCS ${CMAKE_SOURCE_DIR}/interfaces/org.kde.KS
add_library(KF5Screen SHARED ${libkscreen_SRCS})
-target_link_libraries(KF5Screen PUBLIC Qt5::Core PRIVATE Qt5::X11Extras)
-target_link_libraries(KF5Screen
- PUBLIC
- Qt5::Core
- PRIVATE
- Qt5::DBus
- Qt5::X11Extras
-)
+if (XCB_FOUND AND X11_XCB_FOUND)
+ target_link_libraries(KF5Screen PUBLIC Qt5::Core PRIVATE Qt5::X11Extras)
+ target_link_libraries(KF5Screen
+ PUBLIC
+ Qt5::Core
+ PRIVATE
+ Qt5::DBus
+ Qt5::X11Extras
+ )
+else()
+ target_link_libraries(KF5Screen PUBLIC Qt5::Core PRIVATE)
+ target_link_libraries(KF5Screen
+ PUBLIC
+ Qt5::Core
+ PRIVATE
+ Qt5::DBus
+ )
+endif()
set_target_properties(KF5Screen PROPERTIES
VERSION "${KSCREEN_VERSION_STRING}"
diff --git a/src/backendloader.cpp b/src/backendloader.cpp
index 9ff38cb..8f019f0 100644
--- a/src/backendloader.cpp
+++ b/src/backendloader.cpp
@@ -23,7 +23,9 @@
#include <QtCore/QStringList>
#include <QtCore/QCoreApplication>
#include <QtCore/QPluginLoader>
+#ifdef HAVE_XCB
#include <QX11Info>
+#endif
#include <QDir>
diff --git a/src/backendlauncher/CMakeLists.txt b/src/backendlauncher/CMakeLists.txt
index de73ae1..94d1f16 100644
--- a/src/backendlauncher/CMakeLists.txt
+++ b/src/backendlauncher/CMakeLists.txt
@@ -14,12 +14,21 @@ qt5_add_dbus_adaptor(backendlauncher_SRCS ${CMAKE_SOURCE_DIR}/interfaces/org.kde
AbstractBackend* BackendLoader::s_backend = 0;
@@ -53,6 +55,7 @@ bool BackendLoader::init()
add_executable(kscreen_backend_launcher ${backendlauncher_SRCS})
-target_link_libraries(kscreen_backend_launcher
- KF5Screen
- Qt5::Core
- Qt5::Gui
- Qt5::X11Extras
- Qt5::DBus
-)
+if (XCB_FOUND AND X11_XCB_FOUND)
+ target_link_libraries(kscreen_backend_launcher
+ KF5Screen
+ Qt5::Core
+ Qt5::Gui
+ Qt5::X11Extras
+ Qt5::DBus
+ )
+else()
+ target_link_libraries(kscreen_backend_launcher
+ KF5Screen
+ Qt5::Core
+ Qt5::Gui
+ Qt5::DBus
+ )
+endif()
install(TARGETS kscreen_backend_launcher DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR_KF5})
diff --git a/src/backendlauncher/backendloader.cpp b/src/backendlauncher/backendloader.cpp
index 7b90745..9278f9c 100644
--- a/src/backendlauncher/backendloader.cpp
+++ b/src/backendlauncher/backendloader.cpp
@@ -24,8 +24,9 @@
#include <QDBusConnectionInterface>
#include <QDir>
#include <QPluginLoader>
+#ifdef HAVE_X11
#include <QX11Info>
-
+#endif
#include <QDBusConnection>
#include <QDBusInterface>
@@ -58,6 +59,7 @@ bool BackendLoader::loadBackend(const QString& backend)
continue;
}
+#ifdef HAVE_XCB
+#ifdef HAVE_X11
// When on X11, skip the QScreen backend, instead use the XRandR backend,
// if not specified in KSCREEN_BACKEND
if (backend.isEmpty() &&
@@ -76,7 +79,13 @@ bool BackendLoader::init()
@@ -65,12 +67,15 @@ bool BackendLoader::loadBackend(const QString& backend)
QX11Info::isPlatformX11()) {
continue;
}
-
+#else
+ // When not on X11, allow wayland only
+ if (backend.isEmpty() &&
+ !finfo.fileName().contains(QLatin1String("KSC_Wayland"))) {
+ continue;
+ }
+#endif
QPluginLoader loader(finfo.filePath());
loader.load();
QObject *instance = loader.instance();
// When not on X11, skip the XRandR backend, and fall back to QSCreen
// if not specified in KSCREEN_BACKEND
if (backend.isEmpty() &&
- finfo.fileName().contains(QLatin1String("KSC_XRandR")) &&
- !QX11Info::isPlatformX11()) {
+ finfo.fileName().contains(QLatin1String("KSC_XRandR"))
+#ifdef HAVE_X11
+ && !QX11Info::isPlatformX11()
+#endif
+ ) {
continue;
}
--
1.8.3.1

View File

@@ -5,11 +5,12 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LIB;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
"
KDE_BRANCH = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "sebas/wayland", "Plasma/5.1",d)}"
SRCREV = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "7927dea10f9435cc39addfa9e7920c8ec0bc7d6e", "be5d2aed3cbfd7bef9741a8aa6f52a0eadb04b19",d)}"
SRCREV = "be1c7112d477acbcf16904c20d38ca1f15fdaf05"
inherit kde cmake-lib
SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "file://0001-fix-configuration-build-on-x-less-systems.patch", "", d)}"
SRC_URI += " \
file://0001-fix-configuration-build-on-x-less-systems.patch \
"
DEPENDS += " \
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "kwayland", "", d)} \