CMakeLists.txt 6.99 KB
Newer Older
1
cmake_minimum_required(VERSION 3.5)
2
set(KDEPIM_VERSION_NUMBER "5.13.40")
Laurent Montel's avatar
Laurent Montel committed
3

4
5
6
7
8
9
10
11
project(kmail VERSION ${KDEPIM_VERSION_NUMBER})

include(CheckIncludeFiles)


if (POLICY CMP0063)
    cmake_policy(SET CMP0063 NEW)
endif()
12
set(KF5_MIN_VERSION "5.66.0")
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(ECMInstallIcons)
include(ECMSetupVersion)
include(ECMAddTests)

include(GenerateExportHeader)
include(ECMGenerateHeaders)

include(FeatureSummary)
include(CheckFunctionExists)
include(ECMGeneratePriFile)

include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(ECMAddAppIcon)
include(ECMQtDeclareLoggingCategory)

# Do NOT add quote
35
set(KDEPIM_DEV_VERSION alpha)
36
set(RELEASE_SERVICE_VERSION "20.03.70")
37
38
39
40
41
42

# add an extra space
if(DEFINED KDEPIM_DEV_VERSION)
    set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}")
endif()

43
set(KDEPIM_VERSION "${KDEPIM_VERSION_NUMBER}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})")
44
45


Laurent Montel's avatar
Laurent Montel committed
46
47
48
49
50
51
52
53
54
55
56
set(AKONADI_MIMELIB_VERSION "5.13.40")
set(AKONADI_CONTACT_VERSION "5.13.40")
set(CALENDARUTILS_LIB_VERSION "5.13.40")
set(IDENTITYMANAGEMENT_LIB_VERSION "5.13.40")
set(KLDAP_LIB_VERSION "5.13.40")
set(KMAILTRANSPORT_LIB_VERSION "5.13.40")
set(KONTACTINTERFACE_LIB_VERSION "5.13.40")
set(KMIME_LIB_VERSION "5.13.40")
set(KPIMTEXTEDIT_LIB_VERSION "5.13.40")
set(AKONADI_VERSION "5.13.40")
set(KTNEF_LIB_VERSION "5.13.40")
57

Laurent Montel's avatar
Laurent Montel committed
58
59
60
set(KDEPIM_LIB_VERSION "${KDEPIM_VERSION_NUMBER}")
set(KDEPIM_LIB_SOVERSION "5")

61
set(QT_REQUIRED_VERSION "5.12.0")
Laurent Montel's avatar
Laurent Montel committed
62
option(KDEPIM_ENTERPRISE_BUILD "Enable features specific to the enterprise branch, which are normally disabled. Also, it disables many components not needed for Kontact such as the Kolab client." FALSE)
63

64
65
option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE)

Laurent Montel's avatar
Laurent Montel committed
66
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Network Test Widgets WebEngine WebEngineWidgets)
Laurent Montel's avatar
Laurent Montel committed
67
68
69
set(LIBGRAVATAR_VERSION_LIB "5.13.40")
set(MAILCOMMON_LIB_VERSION_LIB "5.13.40")
set(KDEPIM_APPS_LIB_VERSION_LIB "5.13.40")
70
set(MESSAGELIB_LIB_VERSION_LIB "5.13.56")
Laurent Montel's avatar
Laurent Montel committed
71
set(LIBKLEO_LIB_VERSION_LIB "5.13.40")
72
set(PIMCOMMON_LIB_VERSION_LIB "5.13.43")
Laurent Montel's avatar
Laurent Montel committed
73
74
set(LIBKDEPIM_LIB_VERSION_LIB "5.13.40")
set(LIBKSIEVE_LIB_VERSION_LIB "5.13.40")
Laurent Montel's avatar
Laurent Montel committed
75
76
77

find_package(KF5WebEngineViewer ${MESSAGELIB_LIB_VERSION_LIB} CONFIG REQUIRED)

Laurent Montel's avatar
Laurent Montel committed
78
find_package(KF5AkonadiSearch "5.13.40" CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
79
set_package_properties(KF5AkonadiSearch PROPERTIES DESCRIPTION "The Akonadi Search libraries" URL "https://www.kde.org" TYPE REQUIRED PURPOSE "Provides search capabilities in KMail and Akonadi")
Laurent Montel's avatar
Laurent Montel committed
80

81
set(GPGMEPP_LIB_VERSION "1.11.1")
82
83
find_package(Gpgmepp ${GPGMEPP_LIB_VERSION} CONFIG REQUIRED)

Laurent Montel's avatar
Laurent Montel committed
84
# Find KF5 package
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
find_package(KF5Bookmarks ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Codecs ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Config ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5ConfigWidgets ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Crash ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5DBusAddons ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5DocTools ${KF5_MIN_VERSION} REQUIRED)
find_package(KF5GuiAddons ${KF5_MIN_VERSION} REQUIRED)
find_package(KF5I18n ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5ItemViews ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5JobWidgets ${KF5_MIN_VERSION} REQUIRED)
find_package(KF5KIO ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5KCMUtils ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Notifications ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5NotifyConfig ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Parts ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Service ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Sonnet ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5TextWidgets ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5WidgetsAddons ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5WindowSystem ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5XmlGui ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5IconThemes ${KF5_MIN_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
108
109
find_package(KF5Contacts ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5CalendarCore ${KF5_MIN_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
110
111
112
113
114
115
116
117

# Find KdepimLibs Package
find_package(KF5Akonadi ${AKONADI_VERSION} CONFIG REQUIRED)
find_package(KF5AkonadiContact ${AKONADI_CONTACT_VERSION} CONFIG REQUIRED)
find_package(KF5AkonadiMime ${AKONADI_MIMELIB_VERSION} CONFIG REQUIRED)
find_package(KF5CalendarUtils ${CALENDARUTILS_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5IdentityManagement ${IDENTITYMANAGEMENT_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5Ldap ${KLDAP_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
118
find_package(KF5MailTransportAkonadi ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
119
120
121
122
123
124
125
126
find_package(KF5PimTextEdit ${KPIMTEXTEDIT_LIB_VERSION} CONFIG REQUIRED)

find_package(KF5KontactInterface ${KONTACTINTERFACE_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED)

find_package(KF5FollowupReminder ${KDEPIM_APPS_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5Gravatar ${LIBGRAVATAR_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5KdepimDBusInterfaces ${KDEPIM_APPS_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
127
find_package(KF5LibkdepimAkonadi ${LIBKDEPIM_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
128
129
130
131
132
133
134
find_package(KF5Libkleo ${LIBKLEO_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5LibKSieve ${LIBKSIEVE_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5MailCommon ${MAILCOMMON_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5MessageCore ${MESSAGELIB_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5MessageComposer ${MESSAGELIB_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5MessageList ${MESSAGELIB_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5MessageViewer ${MESSAGELIB_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
135
find_package(KF5PimCommonAkonadi ${PIMCOMMON_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
136
137
find_package(KF5SendLater ${KDEPIM_APPS_LIB_VERSION_LIB} CONFIG REQUIRED)
find_package(KF5TemplateParser ${MESSAGELIB_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
138
find_package(KF5Tnef ${KTNEF_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
139
140
find_package(MailTransportDBusService CONFIG REQUIRED)

Laurent Montel's avatar
Laurent Montel committed
141
configure_file(config-enterprise.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-enterprise.h )
Laurent Montel's avatar
Laurent Montel committed
142

143
144
include_directories(${kmail_SOURCE_DIR} ${kmail_BINARY_DIR})
configure_file(kmail-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kmail-version.h @ONLY)
145
146
147
if(BUILD_TESTING)
   add_definitions(-DBUILD_TESTING)
endif()
148

149
150
if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
   add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000)
Laurent Montel's avatar
Laurent Montel committed
151
   #add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000) #Need to find a convert method for KPluginInfo::fromServices
152
endif()
Laurent Montel's avatar
Laurent Montel committed
153
add_definitions(-DQT_NO_FOREACH)
Laurent Montel's avatar
Laurent Montel committed
154
set(CMAKE_CXX_STANDARD 14)
155
156
set(CMAKE_CXX_STANDARD_REQUIRED ON)

157
158
159
#Optional
find_package(KUserFeedback)

160
add_subdirectory(src)
161
add_subdirectory(agents)
Laurent Montel's avatar
Laurent Montel committed
162
add_subdirectory(ktnef)
163
add_subdirectory(kmail-refresh-settings)
164
install(FILES kmail.renamecategories kmail.categories  DESTINATION  ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
Laurent Montel's avatar
Laurent Montel committed
165

Laurent Montel's avatar
Laurent Montel committed
166
167
add_subdirectory(doc)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
168