Warning, /network/krdc/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 set (RELEASE_SERVICE_VERSION_MAJOR "24") 0004 set (RELEASE_SERVICE_VERSION_MINOR "01") 0005 set (RELEASE_SERVICE_VERSION_MICRO "95") 0006 0007 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0008 0009 project(krdc VERSION ${RELEASE_SERVICE_VERSION}) 0010 0011 set (QT_MIN_VERSION "5.15.2") 0012 set (KF_MIN_VERSION "5.91.0") 0013 0014 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 0015 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH}) 0016 0017 include(KDEInstallDirs) 0018 include(KDECMakeSettings) 0019 include(KDECompilerSettings NO_POLICY_SCOPE) 0020 include(ECMSetupVersion) 0021 include(ECMQtDeclareLoggingCategory) 0022 include(FeatureSummary) 0023 include(ECMDeprecationSettings) 0024 0025 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core) 0026 0027 find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS 0028 Config 0029 KCMUtils 0030 DNSSD 0031 NotifyConfig 0032 Notifications 0033 Bookmarks 0034 IconThemes 0035 XmlGui 0036 Completion 0037 Wallet 0038 WidgetsAddons 0039 WindowSystem 0040 NotifyConfig 0041 I18n 0042 KIO 0043 ) 0044 0045 if (QT_MAJOR_VERSION STREQUAL "6") 0046 find_package(KF6StatusNotifierItem ${KF_MIN_VERSION} REQUIRED) 0047 0048 find_package(PlasmaActivities) 0049 set_package_properties(PlasmaActivities PROPERTIES DESCRIPTION "KActivities libraries" 0050 URL "https://www.kde.org" 0051 TYPE OPTIONAL 0052 PURPOSE "For tracking which remote desktops are frequently accessed" 0053 ) 0054 if (PlasmaActivities_FOUND) 0055 set(HAVE_KACTIVITIES TRUE) 0056 endif() 0057 else() 0058 find_package(KF5 ${KF_MIN_VERSION} OPTIONAL_COMPONENTS Activities) 0059 set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries" 0060 URL "https://www.kde.org" 0061 TYPE OPTIONAL 0062 PURPOSE "For tracking which remote desktops are frequently accessed" 0063 ) 0064 if (KF5Activities_FOUND) 0065 set(HAVE_KACTIVITIES TRUE) 0066 endif() 0067 endif() 0068 0069 find_package(KF${QT_MAJOR_VERSION}DocTools) 0070 0071 find_package(Threads REQUIRED) 0072 0073 # use sane compile flags 0074 add_definitions( 0075 -DQT_USE_QSTRINGBUILDER 0076 -DQT_NO_CAST_TO_ASCII 0077 -DQT_NO_CAST_FROM_ASCII 0078 -DQT_STRICT_ITERATORS 0079 -DQT_NO_URL_CAST_FROM_STRING 0080 -DQT_NO_CAST_FROM_BYTEARRAY 0081 -DQT_NO_KEYWORDS 0082 -DQT_NO_FOREACH 0083 ) 0084 ecm_setup_version(${RELEASE_SERVICE_VERSION} 0085 VARIABLE_PREFIX KRDC 0086 SOVERSION 5 0087 VERSION_HEADER krdc_version.h 0088 ) 0089 0090 if(WIN32) 0091 set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN32_LIBRARIES}) 0092 set(CMAKE_REQUIRED_INCLUDES ${KDEWIN32_INCLUDES}) 0093 endif(WIN32) 0094 0095 option(WITH_VNC "Enable VNC support." ON) 0096 add_feature_info(VNC WITH_VNC "Building with support for the VNC protocol. Disable with -DWITH_VNC=NO") 0097 option(WITH_RDP "Enable RDP support. Has additional runtime binary requirements!" ON) 0098 add_feature_info(RDP WITH_RDP "Building with support for the RDP protocol. Disable with -DWITH_RDP=NO") 0099 0100 ecm_set_disabled_deprecation_versions(QT 5.15.2 0101 KF 5.102.0 0102 ) 0103 0104 0105 set(CMAKE_CXX_STANDARD 20) 0106 0107 add_subdirectory(core) 0108 0109 if(WITH_VNC) 0110 find_package(LibVNCServer) 0111 set_package_properties(LibVNCServer PROPERTIES 0112 DESCRIPTION "VNC server / client library" 0113 URL "http://libvncserver.sourceforge.net/" 0114 PURPOSE "Needed to build VNC client support in KRDC" 0115 TYPE REQUIRED 0116 ) 0117 0118 find_package(LibSSH) 0119 set_package_properties(LibSSH PROPERTIES 0120 DESCRIPTION "ssh library" 0121 URL "https://libssh.org/" 0122 PURPOSE "Needed to build VNC+SSH tunnel support " 0123 TYPE OPTIONAL 0124 ) 0125 add_subdirectory(vnc) 0126 endif() 0127 0128 if(WITH_RDP) 0129 find_package(FreeRDP 2.10) 0130 set_package_properties(FreeRDP PROPERTIES 0131 DESCRIPTION "A free Remote Desktop Protocol (RDP) Implementation" 0132 URL "https://www.freerdp.com/" 0133 PURPOSE "FreeRDP provides RDP support" 0134 TYPE REQUIRED 0135 ) 0136 find_package(WinPR) 0137 set_package_properties(WinPR PROPERTIES 0138 DESCRIPTION "Windows Portable Runtime" 0139 URL "https://www.freerdp.com/" 0140 PURPOSE "Runtime used by FreeRDP" 0141 TYPE REQUIRED 0142 ) 0143 find_package(FreeRDP-Client 2.10) 0144 set_package_properties(FreeRDP-Client PROPERTIES 0145 DESCRIPTION "A free Remote Desktop Protocol (RDP) Implementation, Client libraries" 0146 URL "https://www.freerdp.com/" 0147 PURPOSE "FreeRDP provides RDP support" 0148 TYPE REQUIRED 0149 ) 0150 add_subdirectory(rdp) 0151 endif() 0152 0153 add_subdirectory(test) 0154 0155 if(KF${QT_MAJOR_VERSION}DocTools_FOUND) 0156 add_subdirectory(doc) 0157 else() 0158 message("KF${QT_MAJOR_VERSION}DocTools not found. Not building documentation.") 0159 endif() 0160 0161 0162 add_executable(krdc) 0163 0164 target_compile_definitions(krdc PRIVATE -DBUILD_ZEROCONF) 0165 0166 configure_file(config-kactivities.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kactivities.h) 0167 0168 target_sources(krdc PRIVATE 0169 config/hostpreferenceslist.cpp 0170 config/preferencesdialog.cpp 0171 floatingtoolbar.cpp 0172 bookmarkmanager.cpp 0173 connectiondelegate.cpp 0174 remotedesktopsmodel.cpp 0175 systemtrayicon.cpp 0176 tabbedviewwidget.cpp 0177 factorwidget.cpp 0178 mainwindow.cpp 0179 main.cpp 0180 0181 krdc.qrc 0182 ) 0183 0184 ki18n_wrap_ui(krdc 0185 config/general.ui 0186 ) 0187 0188 ecm_qt_declare_logging_category(krdc 0189 HEADER krdc_debug.h 0190 IDENTIFIER KRDC 0191 CATEGORY_NAME KRDC 0192 DESCRIPTION "KRDC" 0193 EXPORT KRDC 0194 DEFAULT_SEVERITY Warning 0195 ) 0196 0197 target_link_libraries(krdc 0198 KF${QT_MAJOR_VERSION}::ConfigCore 0199 KF${QT_MAJOR_VERSION}::KCMUtils 0200 KF${QT_MAJOR_VERSION}::DNSSD 0201 KF${QT_MAJOR_VERSION}::NotifyConfig 0202 KF${QT_MAJOR_VERSION}::Bookmarks 0203 KF${QT_MAJOR_VERSION}::IconThemes 0204 KF${QT_MAJOR_VERSION}::XmlGui 0205 KF${QT_MAJOR_VERSION}::Completion 0206 KF${QT_MAJOR_VERSION}::WidgetsAddons 0207 KF${QT_MAJOR_VERSION}::NotifyConfig 0208 KF${QT_MAJOR_VERSION}::Notifications 0209 krdccore 0210 ) 0211 0212 if (QT_MAJOR_VERSION STREQUAL "6") 0213 target_link_libraries(krdc KF6::StatusNotifierItem KF6::BookmarksWidgets) 0214 endif() 0215 0216 if (HAVE_KACTIVITIES) 0217 0218 if (QT_MAJOR_VERSION STREQUAL "6") 0219 target_link_libraries(krdc Plasma::Activities) 0220 else() 0221 target_link_libraries(krdc KF5::Activities) 0222 endif() 0223 endif() 0224 0225 install(TARGETS krdc ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0226 install(PROGRAMS org.kde.krdc.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 0227 install(FILES org.kde.krdc.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0228 0229 ki18n_install(po) 0230 if(KF${QT_MAJOR_VERSION}DocTools_FOUND) 0231 kdoctools_install(po) 0232 endif() 0233 0234 ecm_qt_install_logging_categories( 0235 EXPORT KRDC 0236 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0237 ) 0238 0239 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)