]> cloud.milkyroute.net Git - dolphin.git/blob - CMakeLists.txt
Fix selection rect after porting from QFontMetrics::width()
[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.11.0")
11 set(KF5_MIN_VERSION "5.71.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(PackageKitQt5)
81 set_package_properties(PackageKitQt5
82 PROPERTIES DESCRIPTION "Software Manager integration"
83 TYPE OPTIONAL
84 PURPOSE "Used in the service menu installer"
85 )
86 if(PackageKitQt5_FOUND)
87 set(HAVE_PACKAGEKIT TRUE)
88 endif()
89
90 find_package(KF5Baloo ${KF5_MIN_VERSION})
91 set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
92 URL "https://www.kde.org"
93 TYPE OPTIONAL
94 PURPOSE "For adding desktop-wide search and tagging support to dolphin"
95 )
96
97 find_package(KF5BalooWidgets 19.07.70)
98 set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
99 URL "https://www.kde.org"
100 TYPE OPTIONAL
101 )
102
103 find_package(KF5FileMetaData ${KF5_MIN_VERSION})
104 set_package_properties(KF5FileMetaData PROPERTIES
105 URL "https://projects.kde.org/kfilemetadata"
106 TYPE OPTIONAL
107 PURPOSE "For accessing file metadata labels"
108 )
109
110 if (KF5Activities_FOUND)
111 set(HAVE_KACTIVITIES TRUE)
112 endif()
113
114 if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
115 message(STATUS "Baloo packages are found")
116 set(HAVE_BALOO TRUE)
117 else()
118 message(WARNING "Baloo packages not found. They are needed for the metadata features of Dolphin (including the information panel).")
119 endif()
120
121 # TODO: drop HAVE_TERMINAL once we are sure the terminal panel works on Windows too.
122 if(WIN32)
123 set(HAVE_TERMINAL FALSE)
124 else()
125 set(HAVE_TERMINAL TRUE)
126 endif()
127
128 add_subdirectory(src)
129 add_subdirectory(doc)
130
131 # CMake files
132 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/DolphinVcs")
133
134 configure_package_config_file(
135 "${CMAKE_CURRENT_SOURCE_DIR}/DolphinVcsConfig.cmake.in"
136 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
137 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
138 )
139
140 install(FILES
141 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfig.cmake"
142 "${CMAKE_CURRENT_BINARY_DIR}/DolphinVcsConfigVersion.cmake"
143 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
144 COMPONENT Devel
145 )
146
147 install(EXPORT DolphinVcsTargets
148 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
149 FILE DolphinVcsTargets.cmake
150 )
151
152 install(FILES
153 "${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_version.h"
154 DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin"
155 COMPONENT Devel
156 )
157
158 configure_file(org.kde.dolphin.FileManager1.service.in
159 ${CMAKE_CURRENT_BINARY_DIR}/org.kde.dolphin.FileManager1.service)
160 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.dolphin.FileManager1.service
161 DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR})
162 install(FILES dolphin.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
163
164 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
165