Warning, /system/dolphin/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
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 project(Dolphin VERSION ${RELEASE_SERVICE_VERSION})
0009
0010 set(QT_MIN_VERSION "6.4.0")
0011 set(KF6_MIN_VERSION "5.240.0")
0012
0013 # ECM setup
0014 find_package(ECM ${KF6_MIN_VERSION} CONFIG REQUIRED)
0015 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
0016
0017 include(KDEInstallDirs)
0018 include(KDECMakeSettings)
0019 include(KDECompilerSettings NO_POLICY_SCOPE)
0020
0021 include(ECMSetupVersion)
0022 include(ECMGenerateHeaders)
0023 include(ECMGenerateDBusServiceFile)
0024 include(ECMConfiguredInstall)
0025 include(CMakePackageConfigHelpers)
0026 include(GenerateExportHeader)
0027 include(FeatureSummary)
0028 include(ECMQtDeclareLoggingCategory)
0029 include(ECMDeprecationSettings)
0030 include(CheckIncludeFiles)
0031 include(CheckLibraryExists)
0032
0033 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN
0034 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h"
0035 )
0036
0037 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHINVCS
0038 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
0039 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
0040 SOVERSION 6
0041 )
0042
0043 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHINPRIVATE
0044 SOVERSION 6
0045 )
0046
0047 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0048 Core
0049 Concurrent
0050 Widgets
0051 Gui
0052 DBus
0053 )
0054
0055 if (UNIX AND NOT APPLE)
0056 set(HAVE_X11 TRUE)
0057 endif()
0058
0059 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
0060 KCMUtils
0061 NewStuff
0062 CoreAddons
0063 I18n
0064 DBusAddons
0065 Bookmarks
0066 Config
0067 KIO
0068 Parts
0069 Solid
0070 IconThemes
0071 Completion
0072 TextWidgets
0073 Notifications
0074 Crash
0075 WindowSystem
0076 WidgetsAddons
0077 Codecs
0078 )
0079
0080 find_package(KF6UserFeedback ${KF6_MIN_VERSION})
0081 set_package_properties(KF6UserFeedback
0082 PROPERTIES TYPE OPTIONAL
0083 PURPOSE "Used for submission of telemetry data"
0084 )
0085
0086 if(KF6UserFeedback_FOUND)
0087 set(HAVE_KUSERFEEDBACK TRUE)
0088 endif()
0089
0090 find_package(KF6 ${KF6_MIN_VERSION} OPTIONAL_COMPONENTS
0091 DocTools
0092 )
0093 find_package(PlasmaActivities)
0094 set_package_properties(PlasmaActivities PROPERTIES DESCRIPTION "PlasmaActivities libraries"
0095 URL "https://www.kde.org"
0096 TYPE OPTIONAL
0097 PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop"
0098 )
0099
0100 find_package(Phonon4Qt6 CONFIG REQUIRED)
0101
0102 find_package(PackageKitQt6)
0103 set_package_properties(PackageKitQt6
0104 PROPERTIES DESCRIPTION "Software Manager integration"
0105 TYPE OPTIONAL
0106 PURPOSE "Used in the service menu installer"
0107 )
0108 if(PackageKitQt6_FOUND)
0109 set(HAVE_PACKAGEKIT TRUE)
0110 endif()
0111
0112 find_package(KF6Baloo ${KF6_MIN_VERSION})
0113 set_package_properties(KF6Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
0114 URL "https://www.kde.org"
0115 TYPE OPTIONAL
0116 PURPOSE "For adding desktop-wide search and tagging support to dolphin"
0117 )
0118
0119 find_package(KF6BalooWidgets ${RELEASE_SERVICE_VERSION})
0120 set_package_properties(KF6BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
0121 URL "https://www.kde.org"
0122 TYPE OPTIONAL
0123 )
0124
0125 find_package(KF6FileMetaData ${KF6_MIN_VERSION})
0126 set_package_properties(KF6FileMetaData PROPERTIES
0127 URL "https://projects.kde.org/kfilemetadata"
0128 TYPE OPTIONAL
0129 PURPOSE "For accessing file metadata labels"
0130 )
0131
0132 if (PlasmaActivities_FOUND)
0133 set(HAVE_PLASMA_ACTIVITIES TRUE)
0134 endif()
0135
0136 if (KF6Baloo_FOUND AND KF6BalooWidgets_FOUND AND KF6FileMetaData_FOUND)
0137 message(STATUS "Baloo packages are found")
0138 set(HAVE_BALOO TRUE)
0139 else()
0140 message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
0141 endif()
0142
0143 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
0144 if(WIN32)
0145 set(HAVE_TERMINAL FALSE)
0146 else()
0147 set(HAVE_TERMINAL TRUE)
0148 endif()
0149
0150 # Compatibility with platforms without native fts (e.g. musl)
0151 check_include_files("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H)
0152 if(HAVE_FTS_H)
0153 check_function_exists(fts_open HAVE_FTS_OPEN)
0154 if(NOT HAVE_FTS_OPEN)
0155 check_library_exists(fts fts_open "" HAVE_LIB_FTS)
0156 endif()
0157 endif()
0158
0159 if(HAVE_LIB_FTS)
0160 set(FTS_LIB fts)
0161 else()
0162 set(FTS_LIB "")
0163 endif()
0164
0165 add_subdirectory(src)
0166 add_subdirectory(doc)
0167
0168 # CMake files
0169 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
0170
0171 configure_package_config_file(
0172 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
0173 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
0174 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0175 )
0176
0177 install(FILES
0178 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
0179 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
0180 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0181 COMPONENT Devel
0182 )
0183
0184 install(EXPORT DolphinVcsTargets
0185 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0186 FILE DolphinVcsTargets.cmake
0187 )
0188
0189 install(FILES
0190 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
0191 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
0192 COMPONENT Devel
0193 )
0194
0195 if(FLATPAK)
0196 ecm_generate_dbus_service_file(
0197 NAME org.freedesktop.FileManager1
0198 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
0199 SYSTEMD_SERVICE plasma-dolphin.service
0200 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
0201 )
0202 else()
0203 ecm_generate_dbus_service_file(
0204 NAME org.freedesktop.FileManager1
0205 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
0206 SYSTEMD_SERVICE plasma-dolphin.service
0207 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
0208 RENAME org.kde.dolphin.FileManager1.service
0209 )
0210 endif()
0211
0212 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR})
0213
0214 ecm_qt_install_logging_categories(
0215 EXPORT DOLPHIN
0216 FILE dolphin.categories
0217 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0218 )
0219
0220 ki18n_install(po)
0221 if(KF6DocTools_FOUND)
0222 kdoctools_install(po)
0223 endif()
0224
0225 install(FILES completions/dolphin.zsh RENAME _dolphin DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR})
0226
0227 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
0228
0229 include(KDEClangFormat)
0230 # add clang-format target
0231 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0232 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0233
0234 include(KDEGitCommitHooks)
0235 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)