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