]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
D-Bus activation systemd service
[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 "20")
5 set (RELEASE_SERVICE_VERSION_MINOR "11")
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.75.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 find_package(KF5 ${KF5_MIN_VERSION} OPTIONAL_COMPONENTS
72 Activities
73 )
74 set_package_properties(KF5Activities PROPERTIES DESCRIPTION "KActivities libraries"
75 URL "https://www.kde.org"
76 TYPE OPTIONAL
77 PURPOSE "For tracking which folders are frequently accessed on a Plasma desktop"
78 )
79
80 find_package(Phonon4Qt5 CONFIG REQUIRED)
81
82 find_package(PackageKitQt5)
83 set_package_properties(PackageKitQt5
84 PROPERTIES DESCRIPTION "Software Manager integration"
85 TYPE OPTIONAL
86 PURPOSE "Used in the service menu installer"
87 )
88 if(PackageKitQt5_FOUND)
89 set(HAVE_PACKAGEKIT TRUE)
90 endif()
91
92 find_package(KF5Baloo ${KF5_MIN_VERSION})
93 set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
94 URL "https://www.kde.org"
95 TYPE OPTIONAL
96 PURPOSE "For adding desktop-wide search and tagging support to dolphin"
97 )
98
99 find_package(KF5BalooWidgets 19.07.70)
100 set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
101 URL "https://www.kde.org"
102 TYPE OPTIONAL
103 )
104
105 find_package(KF5FileMetaData ${KF5_MIN_VERSION})
106 set_package_properties(KF5FileMetaData PROPERTIES
107 URL "https://projects.kde.org/kfilemetadata"
108 TYPE OPTIONAL
109 PURPOSE "For accessing file metadata labels"
110 )
111
112 if (KF5Activities_FOUND)
113 set(HAVE_KACTIVITIES TRUE)
114 endif()
115
116 if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
117 message(STATUS "Baloo packages are found")
118 set(HAVE_BALOO TRUE)
119 else()
120 message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
121 endif()
122
123 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
124 if(WIN32)
125 set(HAVE_TERMINAL FALSE)
126 else()
127 set(HAVE_TERMINAL TRUE)
128 endif()
129
130 add_subdirectory(src)
131 add_subdirectory(doc)
132
133 # CMake files
134 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
135
136 configure_package_config_file(
137 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
138 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
139 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
140 )
141
142 install(FILES
143 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
144 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
145 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
146 COMPONENT Devel
147 )
148
149 install(EXPORT DolphinVcsTargets
150 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
151 FILE DolphinVcsTargets.cmake
152 )
153
154 install(FILES
155 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
156 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
157 COMPONENT Devel
158 )
159
160 ecm_generate_dbus_service_file(
161 NAME org.freedesktop.FileManager1
162 EXECUTABLE "${KDE_INSTALL_FULL_BINDIR}/dolphin --daemon"
163 SYSTEMD_SERVICE plasma-dolphin.service
164 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
165 RENAME org.kde.dolphin.FileManager1.service
166 )
167
168 ecm_install_configured_files(INPUT plasma-dolphin.service.in DESTINATION ${SYSTEMD_USER_UNIT_INSTALL_DIR})
169
170 install(FILES dolphin.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
171
172 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
173