Warning, /network/kget/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16 FATAL_ERROR) 0002 0003 # KDE Application Version, managed by release script 0004 set(RELEASE_SERVICE_VERSION_MAJOR "24") 0005 set(RELEASE_SERVICE_VERSION_MINOR "04") 0006 set(RELEASE_SERVICE_VERSION_MICRO "70") 0007 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0008 0009 project(kget VERSION ${RELEASE_SERVICE_VERSION}) 0010 0011 set(REQUIRED_QT_VERSION "6.5.0") 0012 set(KF_VERSION "5.240.0") 0013 set(KDE_COMPILERSETTINGS_LEVEL "5.82") 0014 0015 find_package(ECM ${KF_VERSION} REQUIRED NO_MODULE) 0016 0017 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH}) 0018 0019 include(KDEInstallDirs) 0020 include(KDECMakeSettings) 0021 include(KDECompilerSettings NO_POLICY_SCOPE) 0022 0023 include(ECMAddAppIcon) 0024 include(ECMInstallIcons) 0025 include(ECMAddTests) 0026 include(ECMQtDeclareLoggingCategory) 0027 include(ECMSetupVersion) 0028 include(ECMSetupQtPluginMacroNames) 0029 include(GenerateExportHeader) 0030 include(KDEClangFormat) 0031 include(KDEGitCommitHooks) 0032 0033 find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED CONFIG COMPONENTS 0034 DBus 0035 Gui 0036 Network 0037 Sql 0038 Test 0039 Widgets 0040 Xml 0041 ) 0042 0043 find_package(KF6 ${KF_VERSION} REQUIRED 0044 Completion 0045 Config 0046 ConfigWidgets 0047 CoreAddons 0048 Crash 0049 DBusAddons 0050 DocTools 0051 I18n 0052 IconThemes 0053 ItemViews 0054 KCMUtils 0055 KIO 0056 Notifications 0057 NotifyConfig 0058 StatusNotifierItem 0059 Wallet 0060 WidgetsAddons 0061 WindowSystem 0062 XmlGui 0063 ) 0064 0065 #include(CheckIncludeFile) 0066 #include(CheckIncludeFiles) 0067 #include(CheckSymbolExists) 0068 #include(CheckFunctionExists) 0069 #include(CheckLibraryExists) 0070 #include(CheckPrototypeExists) 0071 #include(CheckTypeSize) 0072 0073 if(WIN32) 0074 set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN32_LIBRARIES}) 0075 set(CMAKE_REQUIRED_INCLUDES ${KDEWIN32_INCLUDES}) 0076 endif() 0077 0078 find_package(SQLite3) 0079 set_package_properties(SQLite3 PROPERTIES 0080 DESCRIPTION "SQLite is a Binary-Database" 0081 TYPE RECOMMENDED 0082 PURPOSE "Needed for the SQLite-Backend of the KGet-History" 0083 ) 0084 0085 if (NOT WIN32) 0086 find_package(Gpgmepp 1.7.0) 0087 set_package_properties(Gpgmepp PROPERTIES 0088 DESCRIPTION "The GpgME++ library" 0089 URL "https://www.gnupg.org" 0090 TYPE RECOMMENDED 0091 PURPOSE "GpgME++ is required to have signature verifying support in KGet." 0092 ) 0093 0094 find_package(QGpgmeQt6 1.7.0 CONFIG) 0095 set_package_properties(Gpgmepp PROPERTIES 0096 DESCRIPTION "QGpgME Library" 0097 URL "https://www.gnupg.org" 0098 TYPE OPTIONAL 0099 PURPOSE "QGpgME is required to have signature verifying support in KGet." 0100 ) 0101 endif() 0102 0103 find_package(KTorrent6 23.11.70) 0104 set_package_properties(KTorrent6 PROPERTIES 0105 DESCRIPTION "Backend Library of KTorrent" 0106 TYPE RECOMMENDED 0107 PURPOSE "Needed to build KGet bittorrent support." 0108 ) 0109 0110 find_package(LibMms) 0111 set_package_properties(LibMms PROPERTIES 0112 DESCRIPTION "Library to read mms streams" 0113 TYPE RECOMMENDED 0114 PURPOSE "Needed to build KGet mms support." 0115 ) 0116 0117 if(CMAKE_BUILD_TYPE MATCHES debugfull) 0118 add_definitions(-DDEBUG) 0119 endif() 0120 0121 find_package(Boost REQUIRED) 0122 0123 if (Gpgmepp_FOUND AND NOT WIN32) 0124 find_package(QGpgmeQt6 ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) 0125 add_definitions(-DHAVE_QGPGME) 0126 endif() 0127 0128 set (KGET_PLUGIN_INSTALL_DIR ${KDE_INSTALL_PLUGINDIR}/kget) 0129 0130 add_definitions(-DQT_NO_URL_CAST_FROM_STRING) 0131 0132 include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}) 0133 0134 ecm_setup_version(PROJECT 0135 VARIABLE_PREFIX KGET 0136 VERSION_HEADER "kget_version.h" 0137 ) 0138 0139 ecm_setup_qtplugin_macro_names(JSON_NONE KGET_EXPORT_PLUGIN KGET_EXPORT_PLUGIN_CONFIG) 0140 0141 add_subdirectory(conf) 0142 add_subdirectory(core) 0143 add_subdirectory(ui) 0144 add_subdirectory(transfer-plugins) 0145 add_subdirectory(sounds) 0146 add_subdirectory(desktop) 0147 add_subdirectory(tests) 0148 add_subdirectory(doc) 0149 0150 include_directories( 0151 ${CMAKE_CURRENT_SOURCE_DIR}/core/ 0152 ${CMAKE_CURRENT_BINARY_DIR}/core/ 0153 ) 0154 0155 if(SQLite3_FOUND) 0156 add_definitions(-DHAVE_SQLITE) 0157 endif() 0158 0159 remove_definitions(-DQT_NO_HTTP) 0160 0161 # kgetcore 0162 0163 add_library(kgetcore SHARED) 0164 set_target_properties(kgetcore PROPERTIES 0165 VERSION 6.0.0 0166 SOVERSION 6 0167 ) 0168 0169 set(kgetcore_dbus_SRCS) 0170 qt_add_dbus_adaptor(kgetcore_dbus_SRCS dbus/org.kde.kget.transfer.xml dbus/dbustransferwrapper.h DBusTransferWrapper) 0171 qt_add_dbus_adaptor(kgetcore_dbus_SRCS dbus/org.kde.kget.verifier.xml dbus/dbusverifierwrapper.h DBusVerifierWrapper) 0172 0173 qt_add_dbus_interface(kgetcore_dbus_SRCS dbus/org.kde.Shutdown.xml plasmashudown_interface) 0174 0175 target_sources(kgetcore PRIVATE 0176 ${kgetcore_dbus_SRCS} 0177 core/job.cpp 0178 core/jobqueue.cpp 0179 core/kget.cpp 0180 core/scheduler.cpp 0181 core/transfertreemodel.cpp 0182 core/transfertreeselectionmodel.cpp 0183 core/transfer.cpp 0184 core/transfergroup.cpp 0185 core/transfergrouphandler.cpp 0186 core/transferhandler.cpp 0187 core/handler.cpp 0188 core/transfergroupscheduler.cpp 0189 core/plugin/plugin.cpp 0190 core/plugin/transferfactory.cpp 0191 core/transferdatasource.cpp 0192 core/datasourcefactory.cpp 0193 core/kgetkjobadapter.cpp 0194 core/kuiserverjobs.cpp 0195 core/kgetglobaljob.cpp 0196 core/bitset.cpp 0197 core/download.cpp 0198 core/transferhistorystore.cpp 0199 core/transferhistorystore_xml.cpp 0200 core/transferhistorystore_sqlite.cpp 0201 core/linkimporter.cpp 0202 dbus/dbustransferwrapper.cpp 0203 dbus/dbusverifierwrapper.cpp 0204 core/filemodel.cpp 0205 core/verifier.cpp 0206 core/verificationthread.cpp 0207 core/verificationmodel.cpp 0208 core/verificationdelegate.cpp 0209 core/signature.cpp 0210 core/signaturethread.cpp 0211 core/keydownloader.cpp 0212 core/urlchecker.cpp 0213 core/basedialog.cpp 0214 core/mostlocalurl.cpp 0215 core/filedeleter.cpp 0216 ) 0217 0218 ecm_qt_declare_logging_category(kgetcore 0219 HEADER kget_debug.h 0220 IDENTIFIER KGET_DEBUG 0221 CATEGORY_NAME kget 0222 DESCRIPTION "KGet" 0223 EXPORT KGET 0224 ) 0225 0226 kconfig_add_kcfg_files(kgetcore conf/settings.kcfgc) 0227 0228 generate_export_header(kgetcore BASE_NAME kget) 0229 0230 target_link_libraries(kgetcore PUBLIC 0231 KF6::ConfigGui 0232 KF6::CoreAddons 0233 KF6::DBusAddons 0234 KF6::I18n 0235 KF6::I18nLocaleData 0236 KF6::IconThemes 0237 KF6::IconWidgets 0238 KF6::KCMUtils 0239 KF6::KIOCore 0240 KF6::KIOWidgets 0241 KF6::Notifications 0242 KF6::StatusNotifierItem 0243 KF6::XmlGui 0244 Qt6::Core 0245 Qt6::Widgets 0246 Qt6::Sql 0247 Qt6::Network 0248 Qt6::DBus 0249 Boost::headers 0250 ) 0251 0252 if (SQLITE_FOUND) 0253 target_link_libraries(kgetcore PUBLIC ${QT_QTSQL_LIBRARY}) 0254 endif() 0255 0256 if (TARGET Gpgmepp) 0257 target_link_libraries(kgetcore PUBLIC QGpgmeQt6 Gpgmepp) 0258 kde_enable_exceptions() 0259 endif() 0260 0261 install(TARGETS kgetcore ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0262 0263 0264 # kget 0265 0266 add_executable(kget) 0267 0268 set(kget_dbus_SRCS) 0269 qt_add_dbus_adaptor(kget_dbus_SRCS dbus/org.kde.kget.main.xml dbus/dbuskgetwrapper.h DBusKGetWrapper) 0270 0271 target_sources(kget PRIVATE 0272 ${kget_dbus_SRCS} 0273 # core/transferhandler.cpp 0274 # core/transfertreemodel.cpp 0275 dbus/dbuskgetwrapper.cpp 0276 kget_debug.cpp 0277 conf/autopastemodel.cpp 0278 conf/integrationpreferences.cpp 0279 conf/dlgwebinterface.cpp 0280 conf/preferencesdialog.cpp 0281 conf/transfersgrouptree.cpp 0282 conf/transfersgroupwidget.cpp 0283 conf/pluginselector.cpp 0284 conf/verificationpreferences.cpp 0285 ui/droptarget.cpp 0286 ui/transfersview.cpp 0287 ui/transfersviewdelegate.cpp 0288 ui/transferdetails.cpp 0289 ui/viewscontainer.cpp 0290 ui/newtransferdialog.cpp 0291 ui/groupsettingsdialog.cpp 0292 ui/transfersettingsdialog.cpp 0293 ui/contextmenu.cpp 0294 ui/tray.cpp 0295 ui/history/rangetreewidget.cpp 0296 ui/history/transferhistory.cpp 0297 ui/history/transferhistoryitemdelegate.cpp 0298 ui/history/transferhistorycategorizeddelegate.cpp 0299 ui/history/transferhistorycategorizedview.cpp 0300 ui/linkview/kget_linkview.cpp 0301 ui/linkview/kget_sortfilterproxymodel.cpp 0302 ui/mirror/mirrorsettings.cpp 0303 ui/mirror/mirrormodel.cpp 0304 ui/renamefile.cpp 0305 ui/verificationdialog.cpp 0306 ui/metalinkcreator/metalinkcreator.cpp 0307 ui/metalinkcreator/generalwidget.cpp 0308 ui/metalinkcreator/metalinker.cpp 0309 ui/metalinkcreator/filedlg.cpp 0310 ui/metalinkcreator/localemodels.cpp 0311 ui/metalinkcreator/dragdlg.cpp 0312 ui/metalinkcreator/urlwidget.cpp 0313 ui/metalinkcreator/filehandler.cpp 0314 ui/signaturedlg.cpp 0315 mainwindow.cpp 0316 main.cpp 0317 0318 ui/kgetui.qrc 0319 0320 #extensions/webinterface/httpserver.cpp 0321 ) 0322 0323 ki18n_wrap_ui(kget 0324 conf/dlgadvanced.ui 0325 conf/dlgappearance.ui 0326 conf/dlggroups.ui 0327 conf/dlgintegration.ui 0328 conf/dlgwebinterface.ui 0329 conf/dlgnetwork.ui 0330 conf/verificationpreferences.ui 0331 ui/transferdetailsfrm.ui 0332 ui/newtransferwidget.ui 0333 ui/history/transferhistory.ui 0334 ui/groupsettingsdialog.ui 0335 ui/transfersettingsdialog.ui 0336 ui/linkview/importlinkdialog.ui 0337 ui/mirror/mirrorsettings.ui 0338 ui/mirror/mirroradddlg.ui 0339 ui/renamefile.ui 0340 ui/verificationdialog.ui 0341 ui/verificationadddlg.ui 0342 ui/metalinkcreator/introduction.ui 0343 ui/metalinkcreator/generalwidget.ui 0344 ui/metalinkcreator/files.ui 0345 ui/metalinkcreator/filedlg.ui 0346 ui/metalinkcreator/dragdlg.ui 0347 ui/metalinkcreator/urlwidget.ui 0348 ui/metalinkcreator/commondata.ui 0349 ui/signaturedlg.ui 0350 ) 0351 0352 file(GLOB ICON_SRCS "ui/icons/*-apps-kget.png") 0353 ecm_add_app_icon(kget ICONS ${ICON_SRCS}) 0354 0355 target_link_libraries(kget 0356 kgetcore 0357 KF6::Crash 0358 KF6::Wallet 0359 KF6::DBusAddons 0360 KF6::I18n 0361 KF6::Completion 0362 KF6::CoreAddons 0363 KF6::ItemViews 0364 KF6::KCMUtils 0365 KF6::NotifyConfig 0366 KF6::WindowSystem 0367 Qt::Core 0368 Qt::Widgets 0369 Qt::Sql 0370 Qt::Network 0371 Qt::DBus 0372 ) 0373 if(CMAKE_BUILD_TYPE MATCHES debugfull) 0374 target_link_libraries(kget Qt::Test) 0375 endif() 0376 0377 if (Gpgmepp_FOUND) 0378 if (QT_MAJOR_VERSION STREQUAL "6") 0379 target_link_libraries(kget QGpgmeQt6) 0380 else() 0381 target_link_libraries(kget QGpgme) 0382 endif() 0383 endif() 0384 0385 install(TARGETS kget ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0386 0387 ecm_qt_install_logging_categories( 0388 EXPORT KGET 0389 FILE kget.categories 0390 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 0391 ) 0392 install(FILES org.kde.kget.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0393 0394 # add clang-format target for all our real source files 0395 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 0396 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0397 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0398 0399 ki18n_install(po) 0400 kdoctools_install(po) 0401 0402 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)