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)