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)