CMakeLists.txt 4.73 KB
Newer Older
1
set(PIM_VERSION "5.17.40")
2
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
3
project(kmail-account-wizard VERSION ${PIM_VERSION})
Laurent Montel's avatar
Laurent Montel committed
4

Laurent Montel's avatar
Laurent Montel committed
5
6
7

set(LIBRARY_NAMELINK LIBRARY NAMELINK_SKIP)

8
set(KF5_MIN_VERSION "5.83.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
include(FeatureSummary)
21
include(KDEGitCommitHooks)
Laurent Montel's avatar
Laurent Montel committed
22
23
24
25
26
include(CheckFunctionExists)
include(ECMGeneratePriFile)

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

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

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

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

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

50
set(KDEPIM_LIB_VERSION "${PIM_VERSION}")
Laurent Montel's avatar
Laurent Montel committed
51
52
set(KDEPIM_LIB_SOVERSION "5")

53
set(QT_REQUIRED_VERSION "5.15.0")
Laurent Montel's avatar
Laurent Montel committed
54
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Xml DBus Test)
55
56
57
set(PIMCOMMON_LIB_VERSION "5.17.40")
set(LIBKDEPIM_LIB_VERSION "5.17.40")
set(LIBKLEO_LIB_VERSION "5.17.40")
Laurent Montel's avatar
Laurent Montel committed
58
59

# Find KF5 package
60
61
62
63
64
65
66
67
68
69
70
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)
71

Laurent Montel's avatar
Laurent Montel committed
72
73
74
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
75
find_package(KF5MailTransportAkonadi ${KMAILTRANSPORT_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
76
77
78
find_package(KF5PimCommon ${PIMCOMMON_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5Libkdepim ${LIBKDEPIM_LIB_VERSION} CONFIG REQUIRED)
find_package(KF5Libkleo ${LIBKLEO_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
79
find_package(KF5IMAP ${KIMAP_LIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
80
find_package(MailTransportDBusService CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
81
find_package(KF5AkonadiMime ${AKONADI_MIMELIB_VERSION} CONFIG REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
82
83
84
85


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

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

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

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

93
94
95
96
97
98
99
100
#it will replace kwallet support
find_package(Qt5Keychain CONFIG)
set_package_properties(Qt5Keychain PROPERTIES
                                   DESCRIPTION "Provides support for secure credentials storage"
                                   URL "https://github.com/frankosterfeld/qtkeychain"
                                   TYPE OPTIONAL)


Laurent Montel's avatar
Laurent Montel committed
101
set( SharedMimeInfo_MINIMUM_VERSION "1.3" )
Laurent Montel's avatar
Laurent Montel committed
102
find_package(SharedMimeInfo ${SharedMimeInfo_MINIMUM_VERSION} REQUIRED)
Laurent Montel's avatar
Laurent Montel committed
103

104
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00)
105
add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055400)
106
set(CMAKE_CXX_STANDARD 17)
107
set(CMAKE_CXX_STANDARD_REQUIRED ON)
108

109
option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
Laurent Montel's avatar
Laurent Montel committed
110

111
set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
Laurent Montel's avatar
Laurent Montel committed
112
if (USE_UNITY_CMAKE_SUPPORT)
113
    set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
Laurent Montel's avatar
Laurent Montel committed
114
endif()
Laurent Montel's avatar
Laurent Montel committed
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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)

# 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
129
add_subdirectory(src)
Laurent Montel's avatar
Laurent Montel committed
130

Laurent Montel's avatar
Laurent Montel committed
131

132
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
133
ki18n_install(po)
Laurent Montel's avatar
Laurent Montel committed
134
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)