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