CMakeLists.txt 4.23 KB
Newer Older
Laurent Montel's avatar
Laurent Montel committed
1
set(KDEPIM_VERSION_NUMBER "5.14.0")
2
cmake_minimum_required(VERSION 3.5)
Laurent Montel's avatar
Laurent Montel committed
3
4
project(kmail-account-wizard VERSION ${KDEPIM_VERSION_NUMBER})

Laurent Montel's avatar
Laurent Montel committed
5
6
7

set(LIBRARY_NAMELINK LIBRARY NAMELINK_SKIP)

8
set(KF5_MIN_VERSION "5.68.0")
Laurent Montel's avatar
Laurent Montel committed
9

10
find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
11
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
12

Laurent Montel's avatar
Laurent Montel committed
13
14
15
include(ECMInstallIcons)
include(ECMSetupVersion)
include(ECMAddTests)
16

Laurent Montel's avatar
Laurent Montel committed
17
18
include(GenerateExportHeader)
include(ECMGenerateHeaders)
19

Laurent Montel's avatar
Laurent Montel committed
20
21
22
23
24
25
include(FeatureSummary)
include(CheckFunctionExists)
include(ECMGeneratePriFile)

include(KDEInstallDirs)
include(KDECMakeSettings)
26
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
Laurent Montel's avatar
Laurent Montel committed
27
28
include(ECMAddAppIcon)
include(ECMQtDeclareLoggingCategory)
29

Laurent Montel's avatar
Laurent Montel committed
30
# Do NOT add quote
Laurent Montel's avatar
Laurent Montel committed
31
32
set(KDEPIM_DEV_VERSION )
set(RELEASE_SERVICE_VERSION "20.04.0")
Laurent Montel's avatar
Laurent Montel committed
33
34
35
36

# add an extra space
if(DEFINED KDEPIM_DEV_VERSION)
    set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}")
Laurent Montel's avatar
Laurent Montel committed
37
endif()
Laurent Montel's avatar
Laurent Montel committed
38

39
set(KDEPIM_VERSION "${KDEPIM_VERSION_NUMBER}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})")
Laurent Montel's avatar
Laurent Montel committed
40

Laurent Montel's avatar
Laurent Montel committed
41
42
43
44
45
46
47
set(AKONADI_MIMELIB_VERSION "5.13.90")
set(IDENTITYMANAGEMENT_LIB_VERSION "5.13.90")
set(KLDAP_LIB_VERSION "5.13.90")
set(KMAILTRANSPORT_LIB_VERSION "5.13.90")
set(AKONADI_VERSION "5.13.90")
set(KIMAP_LIB_VERSION "5.13.90")
set(AKONADI_MIMELIB_VERSION "5.13.90")
Laurent Montel's avatar
Laurent Montel committed
48
49
50
51

set(KDEPIM_LIB_VERSION "${KDEPIM_VERSION_NUMBER}")
set(KDEPIM_LIB_SOVERSION "5")

52
set(QT_REQUIRED_VERSION "5.12.0")
Laurent Montel's avatar
Laurent Montel committed
53
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Xml DBus Test)
Laurent Montel's avatar
Laurent Montel committed
54
55
56
set(PIMCOMMON_LIB_VERSION_LIB "5.13.90")
set(LIBKDEPIM_LIB_VERSION_LIB "5.13.90")
set(LIBKLEO_LIB_VERSION_LIB "5.13.90")
Laurent Montel's avatar
Laurent Montel committed
57
58

# Find KF5 package
59
60
61
62
63
64
65
66
67
68
69
find_package(KF5Wallet ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5KCMUtils ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5NotifyConfig ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Config ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Service ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5DBusAddons ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5DocTools ${KF5_MIN_VERSION} REQUIRED)
find_package(KF5TextEditor ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Codecs ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5Crash ${KF5_MIN_VERSION} REQUIRED)
find_package(KF5Notifications ${KF5_MIN_VERSION} CONFIG REQUIRED)
70

Laurent Montel's avatar
Laurent Montel committed
71
72
73
find_package(KF5Akonadi ${AKONADI_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
74
find_package(KF5MailTransportAkonadi ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
75
find_package(KF5PimCommon ${PIMCOMMON_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
76
find_package(KF5LibkdepimAkonadi ${LIBKDEPIM_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
77
find_package(KF5Libkleo ${LIBKLEO_LIB_VERSION_LIB} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
78
find_package(KF5IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
79
find_package(MailTransportDBusService CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
80
find_package(KF5AkonadiMime ${AKONADI_MIMELIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
81
82
83
84


include_directories(${kmail-account-wizard_SOURCE_DIR} ${kmail-account-wizard_BINARY_DIR})

Laurent Montel's avatar
Laurent Montel committed
85
86
87
88

# Qt5 package
find_package(Qt5UiTools ${QT_REQUIRED_VERSION} CONFIG REQUIRED)

89
90
find_package(KF5Kross ${KF5_MIN_VERSION} CONFIG REQUIRED)
find_package(KF5NewStuff ${KF5_MIN_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
91

Laurent Montel's avatar
Laurent Montel committed
92
set( SharedMimeInfo_MINIMUM_VERSION "1.3" )
Laurent Montel's avatar
Laurent Montel committed
93
find_package(SharedMimeInfo ${SharedMimeInfo_MINIMUM_VERSION} REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
94

95
if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
96
   add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050e00)
97
   add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054400)
98
99
endif()

Laurent Montel's avatar
Laurent Montel committed
100
101
102
103
104
105

# allow to disable GHNS support on resource-constrained systems
option( ACCOUNTWIZARD_NO_GHNS "Disable GHNS support in the account wizard" FALSE )

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)

106
107
option( ACCOUNTWIZARD_NO_REGENERATE_MIME "Don't regenerate mime file (only for developper)" FALSE )

Laurent Montel's avatar
Laurent Montel committed
108
109
110
111
112
113
114
115
116
# config-enterprise.h is needed for both ENTERPRISE_BUILD and BUILD_EVERYTHING
configure_file(src/config-enterprise.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config-enterprise.h )

if ( ACCOUNTWIZARD_NO_GHNS )
    add_definitions( -DACCOUNTWIZARD_NO_GHNS )
endif ()



Laurent Montel's avatar
Laurent Montel committed
117
add_subdirectory(src)
Laurent Montel's avatar
Laurent Montel committed
118

Laurent Montel's avatar
Laurent Montel committed
119

Laurent Montel's avatar
Laurent Montel committed
120
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)