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 "23")
0005 set (RELEASE_SERVICE_VERSION_MINOR "07")
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 "5.15.2")
0011 set(KF5_MIN_VERSION "5.101.0")
0012 
0013 # ECM setup
0014 find_package(ECM ${KF5_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 
0031 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN
0032                   VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h"
0033 )
0034 
0035 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINVCS
0036                   VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
0037                   PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
0038                   SOVERSION 5
0039 )
0040 
0041 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINPRIVATE
0042                   SOVERSION 5
0043 )
0044 
0045 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
0046     Core
0047     Concurrent
0048     Widgets
0049     Gui
0050     DBus
0051 )
0052 
0053 if (UNIX AND NOT APPLE)
0054     set(HAVE_X11 TRUE)
0055 
0056     if (QT_MAJOR_VERSION STREQUAL "5")
0057         find_package(Qt5X11Extras REQUIRED)
0058     endif()
0059 endif()
0060 
0061 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
0062     KCMUtils
0063     NewStuff
0064     CoreAddons
0065     I18n
0066     DBusAddons
0067     Bookmarks
0068     Config
0069     KIO
0070     Parts
0071     Solid
0072     IconThemes
0073     Completion
0074     TextWidgets
0075     Notifications
0076     Crash
0077     WindowSystem
0078     WidgetsAddons
0079     Codecs
0080 )
0081 
0082 find_package(KUserFeedback 1.2.0)
0083 set_package_properties(KUserFeedback
0084         PROPERTIES TYPE OPTIONAL
0085         PURPOSE "Used for submission of telemetry data"
0086         )
0087 
0088 if(KUserFeedback_FOUND)
0089     set(HAVE_KUSERFEEDBACK TRUE)
0090 endif()
0091 
0092 find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS
0093     Activities
0094     DocTools
0095 )
0096 set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries"
0097                        URL "https://www.kde.org"
0098                        TYPE OPTIONAL
0099                        PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop"
0100                       )
0101 
0102 find_package(Phonon4Qt${QT_MAJOR_VERSION} CONFIG REQUIRED)
0103 
0104 find_package(PackageKitQt${QT_MAJOR_VERSION})
0105 set_package_properties(PackageKitQt${QT_MAJOR_VERSION}
0106         PROPERTIES DESCRIPTION "Software Manager integration"
0107         TYPE OPTIONAL
0108         PURPOSE "Used in the service menu installer"
0109         )
0110 if(PackageKitQt${QT_MAJOR_VERSION}_FOUND)
0111     set(HAVE_PACKAGEKIT TRUE)
0112 endif()
0113 
0114 find_package(KF5Baloo ${KF5_MIN_VERSION})
0115 set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
0116                        URL "https://www.kde.org"
0117                        TYPE OPTIONAL
0118                        PURPOSE "For adding desktop-wide search and tagging support to dolphin"
0119                       )
0120 
0121 find_package(KF5BalooWidgets 19.07.70)
0122 set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
0123                        URL "https://www.kde.org"
0124                        TYPE OPTIONAL
0125                       )
0126 
0127 find_package(KF5FileMetaData ${KF5_MIN_VERSION})
0128 set_package_properties(KF5FileMetaData PROPERTIES
0129                        URL "https://projects.kde.org/kfilemetadata"
0130                        TYPE OPTIONAL
0131                        PURPOSE "For accessing file metadata labels"
0132                       )
0133 
0134 if (KF5Activities_FOUND)
0135     set(HAVE_KACTIVITIES TRUE)
0136 endif()
0137 
0138 if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
0139     message(STATUS "Baloo packages are found")
0140     set(HAVE_BALOO TRUE)
0141 else()
0142     message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
0143 endif()
0144 
0145 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
0146 if(WIN32)
0147     set(HAVE_TERMINAL FALSE)
0148 else()
0149     set(HAVE_TERMINAL TRUE)
0150 endif()
0151 
0152 ecm_set_disabled_deprecation_versions(
0153     QT 5.15
0154     KF 5.90
0155     KSERVICE 5.89 # We use KServiceTypeTrader in a compat code path
0156 )
0157 
0158 add_subdirectory(src)
0159 add_subdirectory(doc)
0160 
0161 # CMake files
0162 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
0163 
0164 configure_package_config_file(
0165     "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
0166     "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
0167     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0168 )
0169 
0170 install(FILES
0171     "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
0172     "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
0173     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0174     COMPONENT Devel
0175 )
0176 
0177 install(EXPORT DolphinVcsTargets
0178     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0179     FILE DolphinVcsTargets.cmake
0180 )
0181 
0182 install(FILES
0183     "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
0184     DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
0185     COMPONENT Devel
0186 )
0187 
0188 if(FLATPAK)
0189     ecm_generate_dbus_service_file(
0190         NAME org.freedesktop.FileManager1
0191         EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
0192         SYSTEMD_SERVICE plasma-dolphin.service
0193         DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
0194     )
0195 else()
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         RENAME org.kde.dolphin.FileManager1.service
0202     )
0203 endif()
0204 
0205 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR})
0206 
0207 ecm_qt_install_logging_categories(
0208         EXPORT DOLPHIN
0209         FILE dolphin.categories
0210         DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0211         )
0212 
0213 ki18n_install(po)
0214 if(KF5DocTools_FOUND)
0215     kdoctools_install(po)
0216 endif()
0217 
0218 install(FILES completions/dolphin.zsh RENAME _dolphin DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR})
0219 
0220 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
0221 
0222 include(KDEClangFormat)
0223 # add clang-format target
0224 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0225 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0226 
0227 include(KDEGitCommitHooks)
0228 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)