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)