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