summaryrefslogtreecommitdiff
path: root/kde-apps/ktouch/files/ktouch-22.04.3-without_x11.patch
blob: 2278011d6e20cdd8b979473db409b5e5399ea4b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
From f94d8b2bcdb738354f73efabbbe4fcf5bb623bf7 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Sun, 31 Jul 2022 16:17:30 +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.

KTOUCH_BUILD_WITH_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.

- Move the checks to root CMakeLists.txt
- Move finding Qt5X11Extras behind "NOT WITHOUT_X11" too
- x11_helper is conditional on KTOUCH_BUILD_WITH_X11

* backported to release/22.04

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
---
 CMakeLists.txt     | 14 +++++++++++++-
 src/CMakeLists.txt | 13 +------------
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae5dfb8..55753cd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,7 +40,6 @@ find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS
     XmlPatterns
 )
 
-find_package(Qt5X11Extras)
 find_package(Qt5 CONFIG QUIET OPTIONAL_COMPONENTS QuickCompiler)
 
 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
@@ -61,6 +60,19 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
 
 
 option(COMPILE_QML "Precompile QML code" OFF)
+option(WITHOUT_X11 "Build without X11 Keyboard Layout Detection (skips finding X11)" OFF)
+
+if (NOT WITHOUT_X11)
+    find_package(X11)
+    find_package(XCB OPTIONAL_COMPONENTS XCB XKB)
+    find_package(Qt5X11Extras ${QT_MIN_VERSION} CONFIG)
+
+    if (Qt5X11Extras_FOUND AND X11_FOUND AND X11_Xkbfile_FOUND AND X11_Xkb_FOUND AND XCB_FOUND AND XCB_XKB_FOUND)
+        set(KTOUCH_BUILD_WITH_X11 TRUE)
+    endif()
+
+    add_feature_info ("Keyboard Layout Detection" KTOUCH_BUILD_WITH_X11 "needs Qt5X11Extras, libX11, libxkb, libxkbfile, libxcb, and libxcb-xkb")
+endif()
 
 # enable QML debugging for debug builds
 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DQT_QML_DEBUG")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e158d7c..b352184 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,15 +4,6 @@ ecm_setup_version(${RELEASE_SERVICE_VERSION}
     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KTouchConfigVersion.cmake"
 )
 
-find_package(X11)
-find_package(XCB OPTIONAL_COMPONENTS XCB XKB)
-
-if (Qt5X11Extras_FOUND AND X11_FOUND AND X11_Xkbfile_FOUND AND X11_Xkb_FOUND AND XCB_FOUND AND XCB_XKB_FOUND)
-    set(KTOUCH_BUILD_WITH_X11 TRUE)
-endif()
-
-add_feature_info ("Keyboard Layout Detection" KTOUCH_BUILD_WITH_X11 "needs Qt5X11Extras, libX11, libxkb, libxkbfile, libxcb, and libxcb-xkb")
-
 ecm_optional_add_subdirectory(schemata)
 
 # set include directories
@@ -142,9 +133,7 @@ set(ktouch_SRCS
     undocommands/coursecommands.cpp
     undocommands/coursecommands.h
     undocommands/keyboardlayoutcommands.cpp
-    undocommands/keyboardlayoutcommands.h
-    x11_helper.cpp
-    x11_helper.h)
+    undocommands/keyboardlayoutcommands.h)
 
 qt_add_resources(ktouch_imgs_SRCS images/images.qrc)
 
-- 
2.35.1