]> cloud.milkyroute.net Git - dolphin.git/blobdiff - CMakeLists.txt
Add a check before offering to create folder
[dolphin.git] / CMakeLists.txt
index 3a782b9b982dd806389027383b53a885df62647a..b5046c33a6679b93318545f8e3d61568c181cce2 100644 (file)
@@ -1,14 +1,19 @@
 cmake_minimum_required(VERSION 3.16)
 
 # KDE Application Version, managed by release script
 cmake_minimum_required(VERSION 3.16)
 
 # KDE Application Version, managed by release script
-set (RELEASE_SERVICE_VERSION_MAJOR "24")
-set (RELEASE_SERVICE_VERSION_MINOR "04")
+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 (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)
 
 # ECM setup
 find_package(ECM ${KF6_MIN_VERSION} CONFIG REQUIRED)
@@ -29,6 +34,7 @@ include(ECMQtDeclareLoggingCategory)
 include(ECMDeprecationSettings)
 include(CheckIncludeFiles)
 include(CheckLibraryExists)
 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"
 
 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
 )
 
     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()
 
     set(HAVE_X11 TRUE)
 endif()
 
@@ -75,6 +85,8 @@ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
     WindowSystem
     WidgetsAddons
     Codecs
     WindowSystem
     WidgetsAddons
     Codecs
+    GuiAddons
+    ColorScheme
 )
 
 find_package(KF6UserFeedback ${KF6_MIN_VERSION})
 )
 
 find_package(KF6UserFeedback ${KF6_MIN_VERSION})
@@ -90,25 +102,24 @@ endif()
 find_package(KF6 ${KF6_MIN_VERSION} OPTIONAL_COMPONENTS
     DocTools
 )
 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"
 
 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()
 
         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"
 find_package(KF6Baloo ${KF6_MIN_VERSION})
 set_package_properties(KF6Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
                        URL "https://www.kde.org"
@@ -122,21 +133,15 @@ set_package_properties(KF6BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
                        TYPE OPTIONAL
                       )
 
                        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)
     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()
 
     message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
 endif()
 
@@ -149,7 +154,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)
 
 # 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)
     check_function_exists(fts_open HAVE_FTS_OPEN)
     if(NOT HAVE_FTS_OPEN)
         check_library_exists(fts fts_open "" HAVE_LIB_FTS)
@@ -164,6 +169,7 @@ endif()
 
 add_subdirectory(src)
 add_subdirectory(doc)
 
 add_subdirectory(src)
 add_subdirectory(doc)
+add_subdirectory(appiumtests)
 
 # CMake files
 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
 
 # CMake files
 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")