commit:     718214c77d2323472c1e0b38a2abcd43dfcf27de
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  6 09:30:35 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Oct 10 08:35:51 2022 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=718214c7

kde-frameworks/kdelibs4support: Fix build with USE -X

Still pending upstream, but the last of Frameworks packages.

Bug: https://bugs.gentoo.org/813450
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/kdelibs4support-5.99.0-with_x11.patch    | 98 ++++++++++++++++++++++
 .../kdelibs4support/kdelibs4support-9999.ebuild    | 11 ++-
 2 files changed, 106 insertions(+), 3 deletions(-)

diff --git 
a/kde-frameworks/kdelibs4support/files/kdelibs4support-5.99.0-with_x11.patch 
b/kde-frameworks/kdelibs4support/files/kdelibs4support-5.99.0-with_x11.patch
new file mode 100644
index 0000000000..24bcb1b9cc
--- /dev/null
+++ b/kde-frameworks/kdelibs4support/files/kdelibs4support-5.99.0-with_x11.patch
@@ -0,0 +1,98 @@
+From 026571f37c990007be3d7e536b335c19ab98009e Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Sat, 6 Aug 2022 11:16:00 +0200
+Subject: [PATCH] Add CMake option to build WITH_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. This is a behavior change as previously
+it was silently disabled if X11 was not found.
+
+Signed-off-by: Andreas Sturmlechner <[email protected]>
+---
+ CMakeLists.txt       | 18 +++++++++++-------
+ src/CMakeLists.txt   |  6 +++---
+ tests/CMakeLists.txt |  2 +-
+ 3 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f577df45..378d23d4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -51,14 +51,18 @@ if(WIN32)
+ endif()
+ 
+ if (NOT APPLE AND NOT WIN32)
+-    find_package(X11)
++    option(WITH_X11 "Build with X11 integration and session management" ON)
++    if(WITH_X11)
++        find_package(X11)
++        set(HAVE_X11 ${X11_FOUND})
++        if (HAVE_X11)
++            add_feature_info("X11 Session Management (libSM)" X11_SM_FOUND 
"Support for session management in KApplication")
++            find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED X11Extras)
++            find_package(XCB REQUIRED COMPONENTS XCB)
++        endif()
++    endif()
+ endif()
+-set(HAVE_X11 ${X11_FOUND})
+-if (HAVE_X11)
+-  add_feature_info("X11 Session Management (libSM)" X11_SM_FOUND "Support for 
session management in KApplication")
+-  find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED X11Extras)
+-  find_package(XCB REQUIRED COMPONENTS XCB)
+-endif ()
++
+ if (APPLE)
+     cmake_find_frameworks(CoreFoundation)
+ endif ()
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 2096b355..4649a9d5 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -226,7 +226,7 @@ if (NOT KIO_NO_NEPOMUK)
+     )
+ endif ()
+ 
+-if (X11_FOUND)
++if (HAVE_X11)
+    set(libkdelibs4support_SRCS ${libkdelibs4support_SRCS} 
kdeui/kxerrorhandler.cpp )
+    list(APPEND libkdelibs4support_OPTIONAL_LIBS Qt5::X11Extras 
${X11_LIBRARIES})
+ endif ()
+@@ -312,7 +312,7 @@ set(platformLinkLibraries)
+ if (APPLE)
+     set(platformLinkLibraries "-framework CoreFoundation -framework Carbon 
-lresolv")
+ endif()
+-if (X11_FOUND)
++if (HAVE_X11)
+     set(platformLinkLibraries ${XCB_XCB_LIBRARY})
+ endif()
+ 
+@@ -545,7 +545,7 @@ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/all_languages 
DESTINATION ${KDE_INSTA
+ install( FILES kdeui/40.colors kdeui/Oxygen.colors kdeui/Web.colors 
kdeui/Royal.colors kdeui/Rainbow.colors
+          DESTINATION ${KDE_INSTALL_CONFDIR}/colors)
+ 
+-if (NOT X11_FOUND)
++if (NOT HAVE_X11)
+     # install our copy of the rgb.txt named colors list on systems without X11
+     install(FILES kdeui/rgb.txt DESTINATION ${KDE_INSTALL_DATADIR_KF5}/kdeui)
+ endif ()
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 53f870ff..db4b28db 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -63,7 +63,7 @@ target_link_libraries(networkingservice KF5::KDELibs4Support)
+ 
+ ###### kxerrorhandlertest #####
+ 
+-if (X11_FOUND)
++if (HAVE_X11)
+   find_package(Qt5X11Extras ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
+   kdelibs4support_examples( kxerrorhandlertest )
+ 
+-- 
+2.35.1
+

diff --git a/kde-frameworks/kdelibs4support/kdelibs4support-9999.ebuild 
b/kde-frameworks/kdelibs4support/kdelibs4support-9999.ebuild
index 9f084b189d..b455381245 100644
--- a/kde-frameworks/kdelibs4support/kdelibs4support-9999.ebuild
+++ b/kde-frameworks/kdelibs4support/kdelibs4support-9999.ebuild
@@ -11,6 +11,7 @@ VIRTUALX_REQUIRED="test"
 inherit ecm frameworks.kde.org
 
 DESCRIPTION="Framework easing the development transition from KDELibs 4 to KF 
5"
+
 LICENSE="LGPL-2+"
 KEYWORDS=""
 IUSE="X"
@@ -45,13 +46,13 @@ COMMON_DEPEND="
        =kde-frameworks/kio-${PVCUT}*:5
        =kde-frameworks/kitemviews-${PVCUT}*:5
        =kde-frameworks/kjobwidgets-${PVCUT}*:5
-       =kde-frameworks/knotifications-${PVCUT}*:5[X=]
+       =kde-frameworks/knotifications-${PVCUT}*:5[X?]
        =kde-frameworks/kparts-${PVCUT}*:5
        =kde-frameworks/kservice-${PVCUT}*:5
        =kde-frameworks/ktextwidgets-${PVCUT}*:5
        =kde-frameworks/kunitconversion-${PVCUT}*:5
        =kde-frameworks/kwidgetsaddons-${PVCUT}*:5
-       =kde-frameworks/kwindowsystem-${PVCUT}*:5[X=]
+       =kde-frameworks/kwindowsystem-${PVCUT}*:5[X?]
        =kde-frameworks/kxmlgui-${PVCUT}*:5
        =kde-frameworks/solid-${PVCUT}*:5
        virtual/libintl
@@ -79,8 +80,12 @@ BDEPEND="
 "
 
 PATCHES=(
+       # downstream patches
        "${FILESDIR}/${PN}-5.80.0-no-kdesignerplugin.patch" # bug 755956
        "${FILESDIR}/${PN}-5.86.0-unused-dep.patch" # bug 755956
+       # pending upstream:
+       # https://invent.kde.org/frameworks/kdelibs4support/-/merge_requests/21
+       "${FILESDIR}/${PN}-5.99.0-with_x11.patch"
 )
 
 src_prepare() {
@@ -95,7 +100,7 @@ src_prepare() {
 
 src_configure() {
        local mycmakeargs=(
-               $(cmake_use_find_package X X11)
+               -DWITH_X11=$(usex X)
        )
 
        ecm_src_configure

Reply via email to