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