]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
Merge branch 'release/20.12'
[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 "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.14.0")
11 set(KF5_MIN_VERSION "5.77.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(ECMSetupVersion)
18 include(ECMGenerateHeaders)
19 include(ECMGenerateDBusServiceFile)
20 include(ECMConfiguredInstall)
21 include(CMakePackageConfigHelpers)
22 include(GenerateExportHeader)
23 include(FeatureSummary)
24 include(KDEInstallDirs)
25 include(KDECMakeSettings)
26 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
27 include(ECMQtDeclareLoggingCategory)
28
29 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX DOLPHIN
30 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/src/dolphin_version.h"
31 )
32
33 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINVCS
34 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
35 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
36 SOVERSION 5
37 )
38
39 ecm_setup_version("5.0.0" VARIABLE_PREFIX DOLPHINPRIVATE
40 SOVERSION 5
41 )
42
43 find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
44 Core
45 Concurrent
46 Widgets
47 Gui
48 DBus
49 )
50
51 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
52 DocTools
53 Init
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 )
71
72 find_package(KUserFeedback 1.0.0)
73 set_package_properties(KUserFeedback
74 PROPERTIES TYPE OPTIONAL
75 PURPOSE "Used for submission of telemetry data"
76 )
77
78 if(KUserFeedback_FOUND)
79 set(HAVE_KUSERFEEDBACK TRUE)
80 endif()
81
82 find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS
83 Activities
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_subdirectory(src)
142 add_subdirectory(doc)
143
144 # CMake files
145 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
146
147 configure_package_config_file(
148 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
149 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
150 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
151 )
152
153 install(FILES
154 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
155 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
156 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
157 COMPONENT Devel
158 )
159
160 install(EXPORT DolphinVcsTargets
161 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
162 FILE DolphinVcsTargets.cmake
163 )
164
165 install(FILES
166 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
167 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
168 COMPONENT Devel
169 )
170
171 ecm_generate_dbus_service_file(
172 NAME org.freedesktop.FileManager1
173 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
174 SYSTEMD_SERVICE plasma-dolphin.service
175 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
176 RENAME org.kde.dolphin.FileManager1.service
177 )
178
179 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR})
180
181 install(FILES dolphin.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
182
183 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
184