]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
Improve sudo/kdesu error 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 "22")
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.0")
11 set(KF5_MIN_VERSION "5.90.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
30 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN
31 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h"
32 )
33
34 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINVCS
35 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
36 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
37 SOVERSION 5
38 )
39
40 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINPRIVATE
41 SOVERSION 5
42 )
43
44 find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
45 Core
46 Concurrent
47 Widgets
48 Gui
49 DBus
50 )
51
52 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
53 KCMUtils
54 NewStuff
55 CoreAddons
56 I18n
57 DBusAddons
58 Bookmarks
59 Config
60 KIO
61 Parts
62 Solid
63 IconThemes
64 Completion
65 TextWidgets
66 Notifications
67 Crash
68 WindowSystem
69 )
70
71 find_package(KUserFeedback 1.0.0)
72 set_package_properties(KUserFeedback
73 PROPERTIES TYPE OPTIONAL
74 PURPOSE "Used for submission of telemetry data"
75 )
76
77 if(KUserFeedback_FOUND)
78 set(HAVE_KUSERFEEDBACK TRUE)
79 endif()
80
81 find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS
82 Activities
83 DocTools
84 )
85 set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries"
86 URL "https://www.kde.org"
87 TYPE OPTIONAL
88 PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop"
89 )
90
91 find_package(Phonon4Qt5 CONFIG REQUIRED)
92
93 find_package(PackageKitQt5)
94 set_package_properties(PackageKitQt5
95 PROPERTIES DESCRIPTION "Software Manager integration"
96 TYPE OPTIONAL
97 PURPOSE "Used in the service menu installer"
98 )
99 if(PackageKitQt5_FOUND)
100 set(HAVE_PACKAGEKIT TRUE)
101 endif()
102
103 find_package(KF5Baloo ${KF5_MIN_VERSION})
104 set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
105 URL "https://www.kde.org"
106 TYPE OPTIONAL
107 PURPOSE "For adding desktop-wide search and tagging support to dolphin"
108 )
109
110 find_package(KF5BalooWidgets 19.07.70)
111 set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
112 URL "https://www.kde.org"
113 TYPE OPTIONAL
114 )
115
116 find_package(KF5FileMetaData ${KF5_MIN_VERSION})
117 set_package_properties(KF5FileMetaData PROPERTIES
118 URL "https://projects.kde.org/kfilemetadata"
119 TYPE OPTIONAL
120 PURPOSE "For accessing file metadata labels"
121 )
122
123 if (KF5Activities_FOUND)
124 set(HAVE_KACTIVITIES TRUE)
125 endif()
126
127 if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
128 message(STATUS "Baloo packages are found")
129 set(HAVE_BALOO TRUE)
130 else()
131 message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
132 endif()
133
134 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
135 if(WIN32)
136 set(HAVE_TERMINAL FALSE)
137 else()
138 set(HAVE_TERMINAL TRUE)
139 endif()
140
141 add_definitions(
142 -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00
143 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000
144 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055800
145 -DKF_DEPRECATED_WARNINGS_SINCE=0x060000
146 )
147
148 add_subdirectory(src)
149 add_subdirectory(doc)
150
151 # CMake files
152 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
153
154 configure_package_config_file(
155 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
156 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
157 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
158 )
159
160 install(FILES
161 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
162 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
163 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
164 COMPONENT Devel
165 )
166
167 install(EXPORT DolphinVcsTargets
168 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
169 FILE DolphinVcsTargets.cmake
170 )
171
172 install(FILES
173 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
174 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
175 COMPONENT Devel
176 )
177
178 ecm_generate_dbus_service_file(
179 NAME org.freedesktop.FileManager1
180 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
181 SYSTEMD_SERVICE plasma-dolphin.service
182 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
183 RENAME org.kde.dolphin.FileManager1.service
184 )
185
186 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR})
187
188 ecm_qt_install_logging_categories(
189 EXPORT DOLPHIN
190 FILE dolphin.categories
191 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
192 )
193 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
194