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