]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
Clean a debug message
[dolphin.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.16)
2
3 # KDE Application Version, managed by release script
4 set (RELEASE_SERVICE_VERSION_MAJOR "23")
5 set (RELEASE_SERVICE_VERSION_MINOR "03")
6 set (RELEASE_SERVICE_VERSION_MICRO "70")
7 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
8 project(Dolphin VERSION ${RELEASE_SERVICE_VERSION})
9
10 set(QT_MIN_VERSION "6.4.0")
11 set(KF6_MIN_VERSION "5.240.0")
12
13 # ECM setup
14 find_package(ECM ${KF6_MIN_VERSION} CONFIG REQUIRED)
15 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
16
17 include(KDEInstallDirs)
18 include(KDECMakeSettings)
19 include(KDECompilerSettings NO_POLICY_SCOPE)
20
21 include(ECMSetupVersion)
22 include(ECMGenerateHeaders)
23 include(ECMGenerateDBusServiceFile)
24 include(ECMConfiguredInstall)
25 include(CMakePackageConfigHelpers)
26 include(GenerateExportHeader)
27 include(FeatureSummary)
28 include(ECMQtDeclareLoggingCategory)
29 include(ECMDeprecationSettings)
30
31 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN
32 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h"
33 )
34
35 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHINVCS
36 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
37 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
38 SOVERSION ${QT_MAJOR_VERSION}
39 )
40
41 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHINPRIVATE
42 SOVERSION ${QT_MAJOR_VERSION}
43 )
44
45 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
46 Core
47 Concurrent
48 Widgets
49 Gui
50 DBus
51 )
52
53 if (UNIX AND NOT APPLE)
54 set(HAVE_X11 TRUE)
55
56 if (QT_MAJOR_VERSION STREQUAL "5")
57 find_package(Qt5X11Extras REQUIRED)
58 endif()
59 endif()
60
61 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
62 KCMUtils
63 NewStuff
64 CoreAddons
65 I18n
66 DBusAddons
67 Bookmarks
68 Config
69 KIO
70 Parts
71 Solid
72 IconThemes
73 Completion
74 TextWidgets
75 Notifications
76 Crash
77 WindowSystem
78 WidgetsAddons
79 Codecs
80 MoreTools
81 )
82
83 find_package(KUserFeedbackQt6 1.2.0)
84 set_package_properties(KUserFeedback
85 PROPERTIES TYPE OPTIONAL
86 PURPOSE "Used for submission of telemetry data"
87 )
88
89 if(KUserFeedbackQt6_FOUND)
90 set(HAVE_KUSERFEEDBACK TRUE)
91 endif()
92
93 find_package(KF6 ${KF6_MIN_VERSION} OPTIONAL_COMPONENTS
94 Activities
95 DocTools
96 )
97 set_package_properties(KF6Activities PROPERTIES DESCRIPTION "KActivities libraries"
98 URL "https://www.kde.org"
99 TYPE OPTIONAL
100 PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop"
101 )
102
103 find_package(Phonon4Qt${QT_MAJOR_VERSION} CONFIG REQUIRED)
104
105 find_package(PackageKitQt${QT_MAJOR_VERSION})
106 set_package_properties(PackageKitQt${QT_MAJOR_VERSION}
107 PROPERTIES DESCRIPTION "Software Manager integration"
108 TYPE OPTIONAL
109 PURPOSE "Used in the service menu installer"
110 )
111 if(PackageKitQt${QT_MAJOR_VERSION}_FOUND)
112 set(HAVE_PACKAGEKIT TRUE)
113 endif()
114
115 find_package(KF6Baloo ${KF6_MIN_VERSION})
116 set_package_properties(KF6Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
117 URL "https://www.kde.org"
118 TYPE OPTIONAL
119 PURPOSE "For adding desktop-wide search and tagging support to dolphin"
120 )
121
122 find_package(KF6BalooWidgets 23.07.70)
123 set_package_properties(KF6BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
124 URL "https://www.kde.org"
125 TYPE OPTIONAL
126 )
127
128 find_package(KF6FileMetaData ${KF6_MIN_VERSION})
129 set_package_properties(KF6FileMetaData PROPERTIES
130 URL "https://projects.kde.org/kfilemetadata"
131 TYPE OPTIONAL
132 PURPOSE "For accessing file metadata labels"
133 )
134
135 if (KF6Activities_FOUND)
136 set(HAVE_KACTIVITIES TRUE)
137 endif()
138
139 if (KF6Baloo_FOUND AND KF6BalooWidgets_FOUND AND KF6FileMetaData_FOUND)
140 message(STATUS "Baloo packages are found")
141 set(HAVE_BALOO TRUE)
142 else()
143 message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
144 endif()
145
146 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
147 if(WIN32)
148 set(HAVE_TERMINAL FALSE)
149 else()
150 set(HAVE_TERMINAL TRUE)
151 endif()
152
153 add_subdirectory(src)
154 add_subdirectory(doc)
155
156 # CMake files
157 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
158
159 configure_package_config_file(
160 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
161 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
162 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
163 )
164
165 install(FILES
166 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
167 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
168 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
169 COMPONENT Devel
170 )
171
172 install(EXPORT DolphinVcsTargets
173 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
174 FILE DolphinVcsTargets.cmake
175 )
176
177 install(FILES
178 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
179 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
180 COMPONENT Devel
181 )
182
183 if(FLATPAK)
184 ecm_generate_dbus_service_file(
185 NAME org.freedesktop.FileManager1
186 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
187 SYSTEMD_SERVICE plasma-dolphin.service
188 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
189 )
190 else()
191 ecm_generate_dbus_service_file(
192 NAME org.freedesktop.FileManager1
193 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
194 SYSTEMD_SERVICE plasma-dolphin.service
195 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
196 RENAME org.kde.dolphin.FileManager1.service
197 )
198 endif()
199
200 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR})
201
202 ecm_qt_install_logging_categories(
203 EXPORT DOLPHIN
204 FILE dolphin.categories
205 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
206 )
207
208 ki18n_install(po)
209 if(KF6DocTools_FOUND)
210 kdoctools_install(po)
211 endif()
212
213 install(FILES completions/dolphin.zsh RENAME _dolphin DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR})
214
215 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
216
217 include(KDEClangFormat)
218 # add clang-format target
219 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
220 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
221
222 include(KDEGitCommitHooks)
223 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)