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