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 "23") 0004 set (RELEASE_SERVICE_VERSION_MINOR "07") 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 (KF5_MIN_VERSION "5.91.0") 0013 0014 find_package(ECM ${KF5_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(KF5 ${KF5_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 ) 0043 0044 find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS Activities) 0045 set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries" 0046 URL "https://www.kde.org" 0047 TYPE OPTIONAL 0048 PURPOSE "For tracking which remote desktops are frequently accessed" 0049 ) 0050 if (KF5Activities_FOUND) 0051 set(HAVE_KACTIVITIES TRUE) 0052 endif() 0053 0054 find_package(KF5DocTools) 0055 0056 # use sane compile flags 0057 add_definitions( 0058 -DQT_USE_QSTRINGBUILDER 0059 -DQT_NO_CAST_TO_ASCII 0060 -DQT_NO_CAST_FROM_ASCII 0061 -DQT_STRICT_ITERATORS 0062 -DQT_NO_URL_CAST_FROM_STRING 0063 -DQT_NO_CAST_FROM_BYTEARRAY 0064 -DQT_NO_KEYWORDS 0065 -DQT_NO_FOREACH 0066 ) 0067 ecm_setup_version(${RELEASE_SERVICE_VERSION} 0068 VARIABLE_PREFIX KRDC 0069 SOVERSION 5 0070 VERSION_HEADER krdc_version.h 0071 ) 0072 0073 if(WIN32) 0074 set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN32_LIBRARIES}) 0075 set(CMAKE_REQUIRED_INCLUDES ${KDEWIN32_INCLUDES}) 0076 endif(WIN32) 0077 0078 option(WITH_VNC "Enable VNC support." ON) 0079 add_feature_info(VNC WITH_VNC "Building with support for the VNC protocol. Disable with -DWITH_VNC=NO") 0080 option(WITH_RDP "Enable RDP support. Has additional runtime binary requirements!" ON) 0081 add_feature_info(RDP WITH_RDP "Building with support for the RDP protocol. Disable with -DWITH_RDP=NO") 0082 0083 ecm_set_disabled_deprecation_versions(QT 5.15.2 0084 KF 5.102.0 0085 ) 0086 0087 0088 add_subdirectory(core) 0089 0090 if(WITH_VNC) 0091 find_package(LibVNCServer) 0092 set_package_properties(LibVNCServer PROPERTIES 0093 DESCRIPTION "VNC server / client library" 0094 URL "http://libvncserver.sourceforge.net/" 0095 PURPOSE "Needed to build VNC client support in KRDC" 0096 TYPE REQUIRED 0097 ) 0098 0099 find_package(LibSSH) 0100 set_package_properties(LibSSH PROPERTIES 0101 DESCRIPTION "ssh library" 0102 URL "https://libssh.org/" 0103 PURPOSE "Needed to build VNC+SSH tunnel support " 0104 TYPE OPTIONAL 0105 ) 0106 add_subdirectory(vnc) 0107 endif() 0108 0109 if(WITH_RDP) 0110 find_package(xfreerdp) 0111 set_package_properties(xfreerdp PROPERTIES 0112 DESCRIPTION "A free Remote Desktop Protocol (RDP) Implementation" 0113 URL "https://www.freerdp.com/" 0114 PURPOSE "The xfreerdp binary is needed for RDP support in KRDC (at runtime)" 0115 TYPE RUNTIME 0116 ) 0117 add_subdirectory(rdp) 0118 endif() 0119 0120 add_subdirectory(test) 0121 0122 if(KF5DocTools_FOUND) 0123 add_subdirectory(doc) 0124 else() 0125 message("KF5DocTools not found. Not building documentation.") 0126 endif() 0127 0128 0129 add_executable(krdc) 0130 0131 target_compile_definitions(krdc PRIVATE -DBUILD_ZEROCONF) 0132 0133 configure_file(config-kactivities.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kactivities.h) 0134 0135 target_sources(krdc PRIVATE 0136 config/hostpreferenceslist.cpp 0137 config/preferencesdialog.cpp 0138 floatingtoolbar.cpp 0139 bookmarkmanager.cpp 0140 connectiondelegate.cpp 0141 remotedesktopsmodel.cpp 0142 systemtrayicon.cpp 0143 tabbedviewwidget.cpp 0144 factorwidget.cpp 0145 mainwindow.cpp 0146 main.cpp 0147 0148 krdc.qrc 0149 ) 0150 0151 ki18n_wrap_ui(krdc 0152 config/general.ui 0153 ) 0154 0155 ecm_qt_declare_logging_category(krdc 0156 HEADER krdc_debug.h 0157 IDENTIFIER KRDC 0158 CATEGORY_NAME KRDC 0159 DESCRIPTION "KRDC" 0160 EXPORT KRDC 0161 ) 0162 0163 target_link_libraries(krdc 0164 KF5::ConfigCore 0165 KF5::KCMUtils 0166 KF5::DNSSD 0167 KF5::NotifyConfig 0168 KF5::Bookmarks 0169 KF5::IconThemes 0170 KF5::XmlGui 0171 KF5::Completion 0172 KF5::WidgetsAddons 0173 KF5::NotifyConfig 0174 KF5::Notifications 0175 krdccore 0176 ) 0177 0178 if (KF5Activities_FOUND) 0179 target_link_libraries(krdc KF5::Activities) 0180 endif() 0181 0182 install(TARGETS krdc ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0183 install(PROGRAMS org.kde.krdc.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 0184 install(FILES org.kde.krdc.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0185 0186 ki18n_install(po) 0187 if(KF5DocTools_FOUND) 0188 kdoctools_install(po) 0189 endif() 0190 0191 ecm_qt_install_logging_categories( 0192 EXPORT KRDC 0193 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0194 ) 0195 0196 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)