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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
Needed for newer GCC.
From 20c8099d34fc495784b360af131195c851c116f8 Mon Sep 17 00:00:00 2001
From: Nicolas Fella <nicolas.fella@gmx.de>
Date: Thu, 9 May 2024 16:53:56 +0200
Subject: [PATCH] Use PkgConfig to find vncclient
This is more robust than the custom find module
---
CMakeLists.txt | 9 ++----
cmake/modules/FindLibVNCServer.cmake | 48 ----------------------------
vnc/CMakeLists.txt | 7 +---
vnc/qtonly/CMakeLists.txt | 12 ++-----
4 files changed, 6 insertions(+), 70 deletions(-)
delete mode 100644 cmake/modules/FindLibVNCServer.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c1318839..d5b6dd25 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,13 +72,8 @@ set(CMAKE_CXX_STANDARD 20)
add_subdirectory(core)
if(WITH_VNC)
- find_package(LibVNCServer)
- set_package_properties(LibVNCServer PROPERTIES
- DESCRIPTION "VNC server / client library"
- URL "http://libvncserver.sourceforge.net/"
- PURPOSE "Needed to build VNC client support in KRDC"
- TYPE REQUIRED
- )
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(VNCCLIENT libvncclient REQUIRED IMPORTED_TARGET)
find_package(LibSSH)
set_package_properties(LibSSH PROPERTIES
diff --git a/cmake/modules/FindLibVNCServer.cmake b/cmake/modules/FindLibVNCServer.cmake
deleted file mode 100644
index f6634b6e..00000000
--- a/cmake/modules/FindLibVNCServer.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# cmake macro to test LIBVNCSERVER LIB
-
-# SPDX-FileCopyrightText: 2006 Alessandro Praduroux <pradu@pradu.it>
-# SPDX-FileCopyrightText: 2007 Urs Wolfer <uwolfer@kde.org>
-#
-# SPDX-License-Identifier: BSD-3-Clause
-
-IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
- # Already in cache, be silent
- SET(LIBVNCSERVER_FIND_QUIETLY TRUE)
-ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
-
-FIND_PATH(LIBVNCSERVER_INCLUDE_DIR rfb/rfb.h)
-
-FIND_LIBRARY(LIBVNCSERVER_LIBRARIES NAMES vncserver libvncserver)
-
-# libvncserver and libvncclient are in the same package, so it does
-# not make sense to add a new cmake script for finding libvncclient.
-# instead just find the libvncclient also in this file.
-FIND_PATH(LIBVNCCLIENT_INCLUDE_DIR rfb/rfbclient.h)
-FIND_LIBRARY(LIBVNCCLIENT_LIBRARIES NAMES vncclient libvncclient)
-
-IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
- SET(CMAKE_REQUIRED_INCLUDES "${LIBVNCSERVER_INCLUDE_DIR}" "${CMAKE_REQUIRED_INCLUDES}")
- SET(_TEST_SOURCE_CODE "
-#include <rfb/rfbclient.h>
-
-int main()
-{
- rfbClient* tmp;
- tmp->GotXCutText;
- return 0;
-}
- ")
- CHECK_CXX_SOURCE_COMPILES("${_TEST_SOURCE_CODE}" LIBVNCSERVER_FOUND)
-ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
-
-IF (LIBVNCSERVER_FOUND)
- IF (NOT LIBVNCSERVER_FIND_QUIETLY)
- MESSAGE(STATUS "Found LibVNCServer: ${LIBVNCSERVER_LIBRARIES}")
- ENDIF (NOT LIBVNCSERVER_FIND_QUIETLY)
-ELSE (LIBVNCSERVER_FOUND)
- IF (LIBVNCSERVER_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibVNCServer (version 0.9 or later required).")
- ENDIF (LIBVNCSERVER_FIND_REQUIRED)
-ENDIF (LIBVNCSERVER_FOUND)
-
-MARK_AS_ADVANCED(LIBVNCSERVER_INCLUDE_DIR LIBVNCSERVER_LIBRARIES)
diff --git a/vnc/CMakeLists.txt b/vnc/CMakeLists.txt
index 9bc06626..edd67f0d 100644
--- a/vnc/CMakeLists.txt
+++ b/vnc/CMakeLists.txt
@@ -19,17 +19,13 @@ ki18n_wrap_ui(krdc_vncplugin
vncpreferences.ui
)
-target_include_directories(krdc_vncplugin PRIVATE
- ${LIBVNCCLIENT_INCLUDE_DIR}
-)
-
target_link_libraries(krdc_vncplugin
Qt::Core
KF5::ConfigCore
KF5::CoreAddons
KF5::XmlGui
Qt::Gui
- ${LIBVNCCLIENT_LIBRARIES}
+ PkgConfig::VNCCLIENT
krdccore
)
@@ -58,7 +54,6 @@ target_link_libraries(kcm_krdc_vncplugin
KF5::CoreAddons
KF5::XmlGui
Qt::Gui
- ${LIBVNCCLIENT_LIBRARIES}
krdccore
)
--
GitLab
|