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