]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
GIT_SILENT Sync po/docbooks with svn
[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 "5.15.2")
11 set(KF5_MIN_VERSION "5.101.0")
12
13 # ECM setup
14 find_package(ECM ${KF5_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("5.0.0" 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 5
39 )
40
41 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINPRIVATE
42 SOVERSION 5
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(KF5 ${KF5_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 )
80
81 find_package(KUserFeedback 1.2.0)
82 set_package_properties(KUserFeedback
83 PROPERTIES TYPE OPTIONAL
84 PURPOSE "Used for submission of telemetry data"
85 )
86
87 if(KUserFeedback_FOUND)
88 set(HAVE_KUSERFEEDBACK TRUE)
89 endif()
90
91 find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS
92 Activities
93 DocTools
94 )
95 set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries"
96 URL "https://www.kde.org"
97 TYPE OPTIONAL
98 PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop"
99 )
100
101 find_package(Phonon4Qt${QT_MAJOR_VERSION} CONFIG REQUIRED)
102
103 find_package(PackageKitQt${QT_MAJOR_VERSION})
104 set_package_properties(PackageKitQt${QT_MAJOR_VERSION}
105 PROPERTIES DESCRIPTION "Software Manager integration"
106 TYPE OPTIONAL
107 PURPOSE "Used in the service menu installer"
108 )
109 if(PackageKitQt${QT_MAJOR_VERSION}_FOUND)
110 set(HAVE_PACKAGEKIT TRUE)
111 endif()
112
113 find_package(KF5Baloo ${KF5_MIN_VERSION})
114 set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
115 URL "https://www.kde.org"
116 TYPE OPTIONAL
117 PURPOSE "For adding desktop-wide search and tagging support to dolphin"
118 )
119
120 find_package(KF5BalooWidgets 19.07.70)
121 set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
122 URL "https://www.kde.org"
123 TYPE OPTIONAL
124 )
125
126 find_package(KF5FileMetaData ${KF5_MIN_VERSION})
127 set_package_properties(KF5FileMetaData PROPERTIES
128 URL "https://projects.kde.org/kfilemetadata"
129 TYPE OPTIONAL
130 PURPOSE "For accessing file metadata labels"
131 )
132
133 if (KF5Activities_FOUND)
134 set(HAVE_KACTIVITIES TRUE)
135 endif()
136
137 if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
138 message(STATUS "Baloo packages are found")
139 set(HAVE_BALOO TRUE)
140 else()
141 message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
142 endif()
143
144 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
145 if(WIN32)
146 set(HAVE_TERMINAL FALSE)
147 else()
148 set(HAVE_TERMINAL TRUE)
149 endif()
150
151 ecm_set_disabled_deprecation_versions(
152 QT 5.15
153 KF 5.90
154 KSERVICE 5.89 # We use KServiceTypeTrader in a compat code path
155 )
156
157 add_subdirectory(src)
158 add_subdirectory(doc)
159
160 # CMake files
161 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
162
163 configure_package_config_file(
164 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
165 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
166 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
167 )
168
169 install(FILES
170 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
171 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
172 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
173 COMPONENT Devel
174 )
175
176 install(EXPORT DolphinVcsTargets
177 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
178 FILE DolphinVcsTargets.cmake
179 )
180
181 install(FILES
182 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
183 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
184 COMPONENT Devel
185 )
186
187 if(FLATPAK)
188 ecm_generate_dbus_service_file(
189 NAME org.freedesktop.FileManager1
190 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
191 SYSTEMD_SERVICE plasma-dolphin.service
192 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
193 )
194 else()
195 ecm_generate_dbus_service_file(
196 NAME org.freedesktop.FileManager1
197 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
198 SYSTEMD_SERVICE plasma-dolphin.service
199 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
200 RENAME org.kde.dolphin.FileManager1.service
201 )
202 endif()
203
204 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR})
205
206 ecm_qt_install_logging_categories(
207 EXPORT DOLPHIN
208 FILE dolphin.categories
209 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
210 )
211
212 ki18n_install(po)
213 if(KF5DocTools_FOUND)
214 kdoctools_install(po)
215 endif()
216
217 install(FILES completions/dolphin.zsh RENAME _dolphin DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR})
218
219 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
220