X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b625a44a697f863aad92b7cf9c67548c84bc262d..9281664e5b1e492087604264b145b390e8880e81:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index ef0ed258c..2a074067e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,19 @@ cmake_minimum_required(VERSION 3.16) # KDE Application Version, managed by release script -set (RELEASE_SERVICE_VERSION_MAJOR "24") -set (RELEASE_SERVICE_VERSION_MINOR "01") -set (RELEASE_SERVICE_VERSION_MICRO "90") +set (RELEASE_SERVICE_VERSION_MAJOR "25") +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 "6.4.0") -set(KF6_MIN_VERSION "5.240.0") +set(KF6_MIN_VERSION "6.9.0") + +# use C++20 like KF6 itself +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # ECM setup find_package(ECM ${KF6_MIN_VERSION} CONFIG REQUIRED) @@ -29,6 +34,7 @@ include(ECMQtDeclareLoggingCategory) include(ECMDeprecationSettings) include(CheckIncludeFiles) include(CheckLibraryExists) +include(CheckFunctionExists) ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h" @@ -52,7 +58,11 @@ find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS DBus ) -if (UNIX AND NOT APPLE) +if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0") + find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) +endif() + +if (UNIX AND NOT APPLE AND NOT HAIKU) set(HAVE_X11 TRUE) endif() @@ -75,6 +85,8 @@ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS WindowSystem WidgetsAddons Codecs + GuiAddons + ColorScheme ) find_package(KF6UserFeedback ${KF6_MIN_VERSION}) @@ -90,25 +102,26 @@ endif() find_package(KF6 ${KF6_MIN_VERSION} OPTIONAL_COMPONENTS DocTools ) -find_package(PlasmaActivities) -set_package_properties(PlasmaActivities PROPERTIES DESCRIPTION "PlasmaActivities libraries" - URL "https://www.kde.org" - TYPE OPTIONAL - PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop" - ) find_package(Phonon4Qt6 CONFIG REQUIRED) find_package(PackageKitQt6) set_package_properties(PackageKitQt6 PROPERTIES DESCRIPTION "Software Manager integration" - TYPE OPTIONAL + TYPE RECOMMENDED PURPOSE "Used in the service menu installer" ) if(PackageKitQt6_FOUND) set(HAVE_PACKAGEKIT TRUE) endif() +find_package(KF6FileMetaData ${KF6_MIN_VERSION}) +set_package_properties(KF6FileMetaData PROPERTIES + URL "https://projects.kde.org/kfilemetadata" + TYPE REQUIRED + PURPOSE "For accessing file metadata labels and filesystem metadata" + ) + find_package(KF6Baloo ${KF6_MIN_VERSION}) set_package_properties(KF6Baloo PROPERTIES DESCRIPTION "Baloo Core libraries" URL "https://www.kde.org" @@ -122,18 +135,7 @@ set_package_properties(KF6BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets" TYPE OPTIONAL ) -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 (PlasmaActivities_FOUND) - set(HAVE_PLASMA_ACTIVITIES TRUE) -endif() - -if (KF6Baloo_FOUND AND KF6BalooWidgets_FOUND AND KF6FileMetaData_FOUND) +if (KF6Baloo_FOUND AND KF6BalooWidgets_FOUND) message(STATUS "Baloo packages are found") set(HAVE_BALOO TRUE) else() @@ -149,7 +151,7 @@ endif() # Compatibility with platforms without native fts (e.g. musl) check_include_files("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H) -if(HAVE_FTS_H) +if(HAVE_FTS_H AND NOT HAIKU) check_function_exists(fts_open HAVE_FTS_OPEN) if(NOT HAVE_FTS_OPEN) check_library_exists(fts fts_open "" HAVE_LIB_FTS) @@ -164,6 +166,7 @@ endif() add_subdirectory(src) add_subdirectory(doc) +add_subdirectory(appiumtests) # CMake files set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")