diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2022-08-02 10:56:39 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-09-24 10:53:46 +0200 |
commit | e991c3a01691713332f47d6e397ae8aaa35a3a90 (patch) | |
tree | 52320c08a923bbf108eea9a6134c8b518b45d709 /kde-frameworks | |
parent | media-sound/audex: add 0.95_pre20220909, EAPI-8 bump (diff) | |
download | gentoo-e991c3a01691713332f47d6e397ae8aaa35a3a90.tar.gz gentoo-e991c3a01691713332f47d6e397ae8aaa35a3a90.tar.bz2 gentoo-e991c3a01691713332f47d6e397ae8aaa35a3a90.zip |
kde-frameworks/plasma: Fix build with USE -X
Upstream commit d674a99d19efcad866a773fe6c848a7626a61c0a
Bug: https://bugs.gentoo.org/813450
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks')
-rw-r--r-- | kde-frameworks/plasma/files/plasma-5.98.0-without_x11.patch | 140 | ||||
-rw-r--r-- | kde-frameworks/plasma/plasma-5.98.0-r1.ebuild (renamed from kde-frameworks/plasma/plasma-5.98.0.ebuild) | 7 |
2 files changed, 144 insertions, 3 deletions
diff --git a/kde-frameworks/plasma/files/plasma-5.98.0-without_x11.patch b/kde-frameworks/plasma/files/plasma-5.98.0-without_x11.patch new file mode 100644 index 000000000000..62b393ba9b91 --- /dev/null +++ b/kde-frameworks/plasma/files/plasma-5.98.0-without_x11.patch @@ -0,0 +1,140 @@ +From d674a99d19efcad866a773fe6c848a7626a61c0a Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Tue, 2 Aug 2022 10:52:59 +0200 +Subject: [PATCH] Add CMake option to build WITHOUT_X11 + +We want to be able to build without X11 support even if some of the used +libraries may not work w/o X11 themselves yet or need to be built with +X11 support for other reverse dependencies. + +HAVE_X11 already exists and is set automagically so far, but using +-DCMAKE_DISABLE_FIND_PACKAGE_X11 will break if any dependencies list X11 +as required in their cmake config. + +Introducing this option means there is no behavior change by default, +cmake will just skip finding X11 or adding unwanted features if the +option is enabled. + +Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> +--- + CMakeLists.txt | 51 ++++++++++--------- + .../core/config-x11.h.cmake | 1 + + src/plasmaquick/CMakeLists.txt | 8 +-- + src/plasmaquick/dialog.cpp | 1 + + 4 files changed, 31 insertions(+), 30 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3b6405725..15698543f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -88,28 +88,33 @@ set_package_properties(KF5DocTools PROPERTIES DESCRIPTION "Tools to generate doc + TYPE OPTIONAL + ) + +-#optional features +-find_package(X11 MODULE) +-set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries" +- URL "https://www.x.org/" +- TYPE OPTIONAL +- ) +-find_package(XCB MODULE COMPONENTS XCB COMPOSITE DAMAGE SHAPE XFIXES RENDER) +-set_package_properties(XCB PROPERTIES DESCRIPTION "X protocol C-language Binding" +- URL "https://xcb.freedesktop.org/" +- TYPE OPTIONAL +- ) +-if(X11_FOUND AND XCB_XCB_FOUND) +- set(HAVE_X11 1) +- if (QT_MAJOR_VERSION STREQUAL "5") +- find_package(Qt5X11Extras ${REQUIRED_QT_VERSION} NO_MODULE) +- elseif (QT_MAJOR_VERSION STREQUAL "6") +- find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui) # qtx11extras_p.h +- endif() +- #X11_Xrender discovery is done by FindX11 +- #add_feature_info("X Rendering Extension (libXrender)" X11_Xrender_FOUND "Support for compositing, rendering operations, and alpha-blending. STRONGLY RECOMMENDED") +-else() +- set(HAVE_X11 0) ++option(WITHOUT_X11 "Build without X11 support (skips finding X11)." OFF) ++if(NOT WITHOUT_X11) ++ #optional features ++ find_package(X11 MODULE) ++ set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries" ++ URL "https://www.x.org/" ++ TYPE OPTIONAL ++ ) ++ find_package(XCB MODULE COMPONENTS XCB COMPOSITE DAMAGE SHAPE XFIXES RENDER) ++ set_package_properties(XCB PROPERTIES DESCRIPTION "X protocol C-language Binding" ++ URL "https://xcb.freedesktop.org/" ++ TYPE OPTIONAL ++ ) ++ if(X11_FOUND AND XCB_XCB_FOUND) ++ set(HAVE_X11 1) ++ if (QT_MAJOR_VERSION STREQUAL "5") ++ find_package(Qt5X11Extras ${REQUIRED_QT_VERSION} NO_MODULE) ++ elseif (QT_MAJOR_VERSION STREQUAL "6") ++ find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui) # qtx11extras_p.h ++ endif() ++ #X11_Xrender discovery is done by FindX11 ++ #add_feature_info("X Rendering Extension (libXrender)" X11_Xrender_FOUND "Support for compositing, rendering operations, and alpha-blending. STRONGLY RECOMMENDED") ++ set(HAVE_XCB_SHAPE ${XCB_SHAPE_FOUND}) ++ else() ++ set(HAVE_X11 0) ++ set(HAVE_XCB_SHAPE 0) ++ endif() + endif() + + find_package(OpenGL) +@@ -125,7 +130,7 @@ set_package_properties(EGL PROPERTIES + ) + + get_target_property(QtGui_Enabled_Features Qt${QT_MAJOR_VERSION}::Gui QT_ENABLED_PUBLIC_FEATURES) +-if(OpenGL_GLX_FOUND AND X11_FOUND AND (QtGui_Enabled_Features MATCHES "opengl")) ++if(OpenGL_GLX_FOUND AND HAVE_X11 AND (QtGui_Enabled_Features MATCHES "opengl")) + add_feature_info(GLX OpenGL_GLX_FOUND "OpenGL GLX libraries.") + set(HAVE_GLX 1) + else() +diff --git a/src/declarativeimports/core/config-x11.h.cmake b/src/declarativeimports/core/config-x11.h.cmake +index 2f543d547..ad1b45099 100644 +--- a/src/declarativeimports/core/config-x11.h.cmake ++++ b/src/declarativeimports/core/config-x11.h.cmake +@@ -1,2 +1,3 @@ + #cmakedefine01 HAVE_X11 + #cmakedefine01 HAVE_XCB_COMPOSITE ++#cmakedefine01 HAVE_XCB_SHAPE +diff --git a/src/plasmaquick/CMakeLists.txt b/src/plasmaquick/CMakeLists.txt +index 37bbc5097..dd2442e70 100644 +--- a/src/plasmaquick/CMakeLists.txt ++++ b/src/plasmaquick/CMakeLists.txt +@@ -1,9 +1,3 @@ +-if(HAVE_X11 AND XCB_XCB_FOUND AND XCB_SHAPE_FOUND) +- add_definitions(-DHAVE_XCB_SHAPE=1) +-else() +- add_definitions(-DHAVE_XCB_SHAPE=0) +-endif() +- + add_library(KF5PlasmaQuick SHARED) + add_library(KF5::PlasmaQuick ALIAS KF5PlasmaQuick) + +@@ -81,7 +75,7 @@ if(HAVE_X11) + target_link_libraries(KF5PlasmaQuick PRIVATE Qt6::GuiPrivate) + endif() + +- if(XCB_SHAPE_FOUND) ++ if(HAVE_XCB_SHAPE) + target_link_libraries(KF5PlasmaQuick PRIVATE XCB::SHAPE) + endif() + endif() +diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp +index 452e36523..2eabd5fb7 100644 +--- a/src/plasmaquick/dialog.cpp ++++ b/src/plasmaquick/dialog.cpp +@@ -11,6 +11,7 @@ + #include "../declarativeimports/core/framesvgitem.h" + #include "appletquickitem.h" + #include "config-plasma.h" ++#include "../declarativeimports/core/config-x11.h" + #include "configview.h" + #include "dialogshadows_p.h" + #include "view.h" +-- +GitLab + diff --git a/kde-frameworks/plasma/plasma-5.98.0.ebuild b/kde-frameworks/plasma/plasma-5.98.0-r1.ebuild index 376e2545e87e..36811b06c0b8 100644 --- a/kde-frameworks/plasma/plasma-5.98.0.ebuild +++ b/kde-frameworks/plasma/plasma-5.98.0-r1.ebuild @@ -41,7 +41,7 @@ RDEPEND=" =kde-frameworks/kpackage-${PVCUT}*:5 =kde-frameworks/kservice-${PVCUT}*:5 =kde-frameworks/kwidgetsaddons-${PVCUT}*:5 - =kde-frameworks/kwindowsystem-${PVCUT}*:5 + =kde-frameworks/kwindowsystem-${PVCUT}*:5[X?] =kde-frameworks/kxmlgui-${PVCUT}*:5 !gles2-only? ( media-libs/libglvnd[X?] ) wayland? ( @@ -59,14 +59,15 @@ DEPEND="${RDEPEND} " BDEPEND="man? ( >=kde-frameworks/kdoctools-${PVCUT}:5 )" +PATCHES=( "${FILESDIR}/${P}-without_x11.patch" ) + src_configure() { local mycmakeargs=( $(cmake_use_find_package !gles2-only OpenGL) $(cmake_use_find_package man KF5DocTools) $(cmake_use_find_package wayland EGL) $(cmake_use_find_package wayland KF5Wayland) - $(cmake_use_find_package X X11) - $(cmake_use_find_package X XCB) + -DWITHOUT_X11=$(usex !X) ) ecm_src_configure |