X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/de7c7ca274d2ce0c54eaf2d86a6b26f58d7bc26e..0a581f97beea4bed26ca7c716ce52a167cd3658f:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index ec87cdecc..6b712e70c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,22 +1,23 @@ cmake_minimum_required(VERSION 3.16) # KDE Application Version, managed by release script -set (RELEASE_SERVICE_VERSION_MAJOR "21") -set (RELEASE_SERVICE_VERSION_MINOR "11") +set (RELEASE_SERVICE_VERSION_MAJOR "23") +set (RELEASE_SERVICE_VERSION_MINOR "07") set (RELEASE_SERVICE_VERSION_MICRO "70") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") project(Dolphin VERSION ${RELEASE_SERVICE_VERSION}) -set(QT_MIN_VERSION "5.15.0") -set(KF5_MIN_VERSION "5.83.0") - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(QT_MIN_VERSION "6.4.0") +set(KF6_MIN_VERSION "5.240.0") # ECM setup -find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) +find_package(ECM ${KF6_MIN_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) +include(KDEInstallDirs) +include(KDECMakeSettings) +include(KDECompilerSettings NO_POLICY_SCOPE) + include(ECMSetupVersion) include(ECMGenerateHeaders) include(ECMGenerateDBusServiceFile) @@ -24,26 +25,24 @@ include(ECMConfiguredInstall) include(CMakePackageConfigHelpers) include(GenerateExportHeader) include(FeatureSummary) -include(KDEInstallDirs) -include(KDECMakeSettings) -include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(ECMQtDeclareLoggingCategory) +include(ECMDeprecationSettings) ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h" ) -ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINVCS +ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHINVCS VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake" - SOVERSION 5 + SOVERSION ${QT_MAJOR_VERSION} ) -ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINPRIVATE - SOVERSION 5 +ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHINPRIVATE + SOVERSION ${QT_MAJOR_VERSION} ) -find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS +find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Concurrent Widgets @@ -51,7 +50,15 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS DBus ) -find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS +if (UNIX AND NOT APPLE) + set(HAVE_X11 TRUE) + + if (QT_MAJOR_VERSION STREQUAL "5") + find_package(Qt5X11Extras REQUIRED) + endif() +endif() + +find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS KCMUtils NewStuff CoreAddons @@ -68,65 +75,68 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Notifications Crash WindowSystem + WidgetsAddons + Codecs + MoreTools ) -find_package(KUserFeedback 1.0.0) -set_package_properties(KUserFeedback +find_package(KUserFeedbackQt6 1.2.1) +set_package_properties(KUserFeedbackQt6 PROPERTIES TYPE OPTIONAL PURPOSE "Used for submission of telemetry data" ) -if(KUserFeedback_FOUND) +if(KUserFeedbackQt6_FOUND) set(HAVE_KUSERFEEDBACK TRUE) endif() -find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS +find_package(KF6 ${KF6_MIN_VERSION} OPTIONAL_COMPONENTS Activities DocTools ) -set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries" +set_package_properties(KF6Activities PROPERTIES DESCRIPTION "KActivities libraries" URL "https://www.kde.org" TYPE OPTIONAL PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop" ) -find_package(Phonon4Qt5 CONFIG REQUIRED) +find_package(Phonon4Qt${QT_MAJOR_VERSION} CONFIG REQUIRED) -find_package(PackageKitQt5) -set_package_properties(PackageKitQt5 +find_package(PackageKitQt${QT_MAJOR_VERSION}) +set_package_properties(PackageKitQt${QT_MAJOR_VERSION} PROPERTIES DESCRIPTION "Software Manager integration" TYPE OPTIONAL PURPOSE "Used in the service menu installer" ) -if(PackageKitQt5_FOUND) +if(PackageKitQt${QT_MAJOR_VERSION}_FOUND) set(HAVE_PACKAGEKIT TRUE) endif() -find_package(KF5Baloo ${KF5_MIN_VERSION}) -set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries" +find_package(KF6Baloo ${KF6_MIN_VERSION}) +set_package_properties(KF6Baloo PROPERTIES DESCRIPTION "Baloo Core libraries" URL "https://www.kde.org" TYPE OPTIONAL PURPOSE "For adding desktop-wide search and tagging support to dolphin" ) -find_package(KF5BalooWidgets 19.07.70) -set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets" +find_package(KF6BalooWidgets ${RELEASE_SERVICE_VERSION}) +set_package_properties(KF6BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets" URL "https://www.kde.org" TYPE OPTIONAL ) -find_package(KF5FileMetaData ${KF5_MIN_VERSION}) -set_package_properties(KF5FileMetaData PROPERTIES +find_package(KF6FileMetaData ${KF6_MIN_VERSION}) +set_package_properties(KF6FileMetaData PROPERTIES URL "https://projects.kde.org/kfilemetadata" TYPE OPTIONAL PURPOSE "For accessing file metadata labels" ) -if (KF5Activities_FOUND) +if (KF6Activities_FOUND) set(HAVE_KACTIVITIES TRUE) endif() -if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND) +if (KF6Baloo_FOUND AND KF6BalooWidgets_FOUND AND KF6FileMetaData_FOUND) message(STATUS "Baloo packages are found") set(HAVE_BALOO TRUE) else() @@ -170,20 +180,44 @@ install(FILES COMPONENT Devel ) -ecm_generate_dbus_service_file( - NAME org.freedesktop.FileManager1 - EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon" - SYSTEMD_SERVICE plasma-dolphin.service - DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} - RENAME org.kde.dolphin.FileManager1.service -) +if(FLATPAK) + ecm_generate_dbus_service_file( + NAME org.freedesktop.FileManager1 + EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon" + SYSTEMD_SERVICE plasma-dolphin.service + DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} + ) +else() + ecm_generate_dbus_service_file( + NAME org.freedesktop.FileManager1 + EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon" + SYSTEMD_SERVICE plasma-dolphin.service + DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} + RENAME org.kde.dolphin.FileManager1.service + ) +endif() -ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR}) +ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR}) ecm_qt_install_logging_categories( EXPORT DOLPHIN FILE dolphin.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} ) + +ki18n_install(po) +if(KF6DocTools_FOUND) + kdoctools_install(po) +endif() + +install(FILES completions/dolphin.zsh RENAME _dolphin DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR}) + feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) +include(KDEClangFormat) +# add clang-format target +file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c) +kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) + +include(KDEGitCommitHooks) +kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)