summaryrefslogtreecommitdiff
path: root/kde-apps/ktouch/files/ktouch-22.07.90-without_x11.patch
blob: dbfc2d94987bd7fd19db897fa5351998ce9bdc21 (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
96
97
From d290b2a51d5aa4694ec746ce5cc9456977efde71 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

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

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ec74a5..a05231b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,9 +39,6 @@ find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS
     Xml
     XmlPatterns
 )
-if (QT_MAJOR_VERSION STREQUAL "5")
-find_package(Qt5X11Extras)
-endif()
 find_package(Qt${QT_MAJOR_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS QuickCompiler)
 
 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
@@ -62,6 +59,21 @@ 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)
+    if (QT_MAJOR_VERSION STREQUAL "5")
+        find_package(Qt5X11Extras ${QT_MIN_VERSION} CONFIG)
+    endif()
+
+    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 cb6f3f5..9dd2a5f 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
@@ -137,9 +128,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)
 
-- 
GitLab