]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
GIT_SILENT Upgrade release service version to 21.12.2.
[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 "21")
5 set (RELEASE_SERVICE_VERSION_MINOR "12")
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.15.0")
11 set(KF5_MIN_VERSION "5.83.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 KCMUtils
56 NewStuff
57 CoreAddons
58 I18n
59 DBusAddons
60 Bookmarks
61 Config
62 KIO
63 Parts
64 Solid
65 IconThemes
66 Completion
67 TextWidgets
68 Notifications
69 Crash
70 WindowSystem
71 )
72
73 find_package(KUserFeedback 1.0.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(Phonon4Qt5 CONFIG REQUIRED)
94
95 find_package(PackageKitQt5)
96 set_package_properties(PackageKitQt5
97 PROPERTIES DESCRIPTION "Software Manager integration"
98 TYPE OPTIONAL
99 PURPOSE "Used in the service menu installer"
100 )
101 if(PackageKitQt5_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 add_subdirectory(src)
144 add_subdirectory(doc)
145
146 # CMake files
147 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
148
149 configure_package_config_file(
150 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
151 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
152 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
153 )
154
155 install(FILES
156 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
157 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
158 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
159 COMPONENT Devel
160 )
161
162 install(EXPORT DolphinVcsTargets
163 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
164 FILE DolphinVcsTargets.cmake
165 )
166
167 install(FILES
168 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
169 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
170 COMPONENT Devel
171 )
172
173 ecm_generate_dbus_service_file(
174 NAME org.freedesktop.FileManager1
175 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
176 SYSTEMD_SERVICE plasma-dolphin.service
177 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
178 RENAME org.kde.dolphin.FileManager1.service
179 )
180
181 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR})
182
183 ecm_qt_install_logging_categories(
184 EXPORT DOLPHIN
185 FILE dolphin.categories
186 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
187 )
188 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
189