summaryrefslogtreecommitdiff
blob: 2d46600e3dc284ecf346abe56e7315b2471a9c2c (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
From 1213c6dfd34583b005d0a2dbe7876951a13361a2 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Sat, 27 Nov 2021 14:49:51 +0100
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     | 30 ++++++++++++++++--------------
 app/CMakeLists.txt |  4 ++--
 2 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index eafad24..f9a8167 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,20 +51,22 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED
 )
 
 if(NOT APPLE)
-  find_package(X11)
-  set(HAVE_X11 ${X11_FOUND})
-
-  if(X11_FOUND)
-      if (QT_MAJOR_VERSION EQUAL "5")
-          find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED X11Extras)
-      else()
-          find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui)
-      endif()
-  endif(X11_FOUND)
-
-  find_package(KF5Wayland ${KF5_MIN_VERSION} CONFIG)
-  set(HAVE_KWAYLAND ${KF5Wayland_FOUND})
-endif(NOT APPLE)
+    option(WITHOUT_X11 "Build without X11 integration (skips finding X11)" OFF)
+    if(NOT WITHOUT_X11)
+        find_package(X11)
+        set(HAVE_X11 ${X11_FOUND})
+        if(X11_FOUND)
+            if (QT_MAJOR_VERSION EQUAL "5")
+                find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED X11Extras)
+            else()
+                find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Gui)
+            endif()
+        endif()
+    endif()
+
+    find_package(KF5Wayland ${KF5_MIN_VERSION} CONFIG)
+    set(HAVE_KWAYLAND ${KF5Wayland_FOUND})
+endif()
 
 add_subdirectory(app)
 add_subdirectory(data)
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index b2838ec..6ada125 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -63,13 +63,13 @@ target_link_libraries(yakuake
     KF5::WidgetsAddons
     KF5::WindowSystem)
 
-if(X11_FOUND)
+if(HAVE_X11)
     if (TARGET Qt5::X11Extras)
         target_link_libraries(yakuake Qt5::X11Extras)
     elseif (TARGET Qt6::Gui)
         target_link_libraries(yakuake Qt6::GuiPrivate) # qtx11extras_p.h in knotificationrestrictions
     endif()
-endif(X11_FOUND)
+endif()
 
 if(KF5Wayland_FOUND)
   target_link_libraries(yakuake KF5::WaylandClient)
-- 
GitLab