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 "85")
+set (RELEASE_SERVICE_VERSION_MAJOR "25")
+set (RELEASE_SERVICE_VERSION_MINOR "11")
+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)
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"
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()
WindowSystem
WidgetsAddons
Codecs
+ GuiAddons
+ ColorScheme
)
find_package(KF6UserFeedback ${KF6_MIN_VERSION})
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"
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()
+
+ find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+ Multimedia
+ MultimediaWidgets
+ )
+else ()
message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
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)
add_subdirectory(src)
add_subdirectory(doc)
+add_subdirectory(appiumtests)
# CMake files
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")