summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
blob: 36f6ee02a098a33acc9a247d26fa0e4e76500491 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
#################################################
#
#  (C) 2010-2011 Serghei Amelian
#  serghei (DOT) amelian (AT) gmail.com
#
#  Improvements and feedback are welcome
#
#  This file is released under GPL >= 2
#
#################################################

cmake_minimum_required( VERSION 2.8 )


##### general package setup #####################

project( tdepim )
set( PACKAGE tdepim )
set( VERSION "3.5.13" )


##### include essential cmake modules ###########

include( FindPkgConfig )
include( CheckIncludeFile )
include( CheckTypeSize )
include( CheckCSourceCompiles )
include( CheckCXXSourceCompiles )
include( CheckLibraryExists )


##### include our cmake modules #################

set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )


##### setup install paths #######################

include( TDESetupPaths )
tde_setup_paths( )


##### add apidox targets ############

add_custom_target(apidox
  COMMAND "./generate_apidox" "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${HTML_INSTALL_DIR}" "/usr/share/qt3/doc/html"
  WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/cmake/")

add_custom_target(install-apidox
  COMMAND "./install_apidox" "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${HTML_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}"
  WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/cmake/")


##### optional stuff ############################

option( WITH_ALL_OPTIONS "Enable all optional support" OFF )
option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} )
option( WITH_SASL "Enable cyrus-sasl support" ${WITH_ALL_OPTIONS} )
option( WITH_NEWDISTRLISTS "Enable the new distribution lists" ON )
option( WITH_GNOKII "Enable gnokii support" ${WITH_ALL_OPTIONS} )
option( WITH_EXCHANGE "Enable Microsoft Exchange 2000 support" ${WITH_ALL_OPTIONS} )
option( WITH_EGROUPWARE "Enable egroupware support" ${WITH_ALL_OPTIONS} )
option( WITH_KOLAB "Enable kolab support" ${WITH_ALL_OPTIONS} )
option( WITH_SLOX "Enable slox support" ${WITH_ALL_OPTIONS} )
option( WITH_GROUPWISE "Enable groupwise support" ${WITH_ALL_OPTIONS} )
option( WITH_FEATUREPLAN "Enable featureplan support" ${WITH_ALL_OPTIONS} )
option( WITH_GROUPDAV "Enable groupdav support" ${WITH_ALL_OPTIONS} )
option( WITH_BIRTHDAYS "Enable birthdays support" ${WITH_ALL_OPTIONS} )
option( WITH_NEWEXCHANGE "Enable newexchange support" ${WITH_ALL_OPTIONS} )
option( WITH_SCALIX "Enable scalix support" ${WITH_ALL_OPTIONS} )
option( WITH_CALDAV "Enable caldav support" ${WITH_ALL_OPTIONS} )
option( WITH_CARDDAV "Enable carddav support" ${WITH_ALL_OPTIONS} )
option( WITH_INDEXLIB "Enable indexlib support (in kmail)" ${WITH_ALL_OPTIONS} )

if( NOT WITH_ARTS )
  set( WITHOUT_ARTS 1 )
endif( )

if( WITH_NEWDISTRLISTS )
  set( TDEPIM_NEW_DISTRLISTS 1 )
endif( )


##### user requested modules ####################

option( BUILD_ALL "Build all" OFF )
option( BUILD_INDEXLIB "Build indexlib" ${BUILD_ALL} )
option( BUILD_LIBKMIME "Build libkmime" ${BUILD_ALL} )
option( BUILD_KTNEF "Build ktnef" ${BUILD_ALL} )
option( BUILD_LIBKCAL "Build libkcal" ${BUILD_ALL} )
option( BUILD_LIBTDEPIM "Build libtdepim" ${BUILD_ALL} )
option( BUILD_LIBKPIMIDENTITIES "Build libkpimidentities" ${BUILD_ALL} )
option( BUILD_LIBTDENETWORK "Build libtdenetwork" ${BUILD_ALL} )
option( BUILD_CERTMANAGER "Build certmanager" ${BUILD_ALL} )
option( BUILD_LIBKPGP "Build libkpgp" ${BUILD_ALL} )
option( BUILD_MIMELIB "Build mimelib" ${BUILD_ALL} )
option( BUILD_LIBKSIEVE "Build libksieve" ${BUILD_ALL} )
option( BUILD_LIBKPIMEXCHANGE "Build libkpimexchange" ${BUILD_ALL} )
option( BUILD_KIOSLAVES "Build kioslaves" ${BUILD_ALL} )
option( BUILD_KMAIL "Build kmail" ${BUILD_ALL} )
option( BUILD_AKREGATOR "Build akregator" ${BUILD_ALL} )
option( BUILD_KALARM "Build kalarm" ${BUILD_ALL} )
option( BUILD_KADDRESSBOOK "Build kaddressbook" ${BUILD_ALL} )
option( BUILD_KORN "Build korn" ${BUILD_ALL} )
option( BUILD_KGANTT "Build kgantt" ${BUILD_ALL} )
option( BUILD_LIBKHOLIDAYS "Build libkholidays" ${BUILD_ALL} )
option( BUILD_KORGANIZER "Build korganizer" ${BUILD_ALL} )
option( BUILD_PLUGINS "Build plugins" ${BUILD_ALL} )
option( BUILD_KNOTES "Build knotes" ${BUILD_ALL} )
option( BUILD_KODE "Build kode" ${BUILD_ALL} )
option( BUILD_KRESOURCES "Build kresources" ${BUILD_ALL} )
option( BUILD_WIZARDS "Build wizards" ${BUILD_ALL} )
option( BUILD_KABC "Build kabc" ${BUILD_ALL} )
option( BUILD_KONSOLEKALENDAR "Build konsolekalendar" ${BUILD_ALL} )
option( BUILD_KMAILCVT "Build kmailcvt" ${BUILD_ALL} )
option( BUILD_KARM "Build karm" ${BUILD_ALL} )
option( BUILD_KFILE_PLUGINS "Build kfile-plugins" ${BUILD_ALL} )
option( BUILD_KANDY "Build kandy" ${BUILD_ALL} )
option( BUILD_KNODE "Build knode" ${BUILD_ALL} )
option( BUILD_KMOBILE "Build kmobile" ${BUILD_ALL} )
option( BUILD_DOC "Build doc" ${BUILD_ALL} )
option( BUILD_KONTACT "Build kontact" ${BUILD_ALL} )

# deprecated
option( BUILD_KITCHENSYNC "Build kitchensync" OFF )


##### configure checks ##########################

include( ConfigureChecks.cmake )


###### global compiler settings #################

add_definitions(
  -DHAVE_CONFIG_H
)

set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )


##### activate dependencies #####################

if( BUILD_LIBKCAL OR BUILD_LIBTDEPIM OR BUILD_LIBKPIMIDENTITIES OR BUILD_KIOSLAVES OR BUILD_KMAIL OR BUILD_KNODE )
  add_subdirectory( libemailfunctions )
endif()

if( BUILD_KADDRESSBOOK OR (BUILD_KRESOURCES AND (WITH_EGROUPWARE OR WITH_BIRTHDAYS)) )
    add_subdirectory( kaddressbook/common )
endif()


##### tdepim directories ########################

tde_conditional_add_subdirectory( BUILD_INDEXLIB indexlib )
tde_conditional_add_subdirectory( BUILD_LIBKMIME libkmime )
tde_conditional_add_subdirectory( BUILD_KTNEF ktnef )
tde_conditional_add_subdirectory( BUILD_LIBKCAL libkcal )
tde_conditional_add_subdirectory( BUILD_LIBTDEPIM pixmaps )
tde_conditional_add_subdirectory( BUILD_LIBTDEPIM libtdepim )
tde_conditional_add_subdirectory( BUILD_LIBKPIMIDENTITIES libkpimidentities )
tde_conditional_add_subdirectory( BUILD_LIBTDENETWORK libtdenetwork )
tde_conditional_add_subdirectory( BUILD_CERTMANAGER certmanager )
tde_conditional_add_subdirectory( BUILD_LIBKPGP libkpgp )
tde_conditional_add_subdirectory( BUILD_MIMELIB mimelib )
tde_conditional_add_subdirectory( BUILD_LIBKSIEVE libksieve )
tde_conditional_add_subdirectory( BUILD_LIBKPIMEXCHANGE libkpimexchange )
tde_conditional_add_subdirectory( BUILD_KIOSLAVES kioslaves )
tde_conditional_add_subdirectory( BUILD_KMAIL kmail )
tde_conditional_add_subdirectory( BUILD_AKREGATOR akregator )
tde_conditional_add_subdirectory( BUILD_KALARM kalarm )
tde_conditional_add_subdirectory( BUILD_KADDRESSBOOK kaddressbook )
tde_conditional_add_subdirectory( BUILD_KORN korn )
tde_conditional_add_subdirectory( BUILD_KGANTT kgantt )
tde_conditional_add_subdirectory( BUILD_LIBKHOLIDAYS libkholidays )
tde_conditional_add_subdirectory( BUILD_KORGANIZER kdgantt )
tde_conditional_add_subdirectory( BUILD_KORGANIZER korganizer )
tde_conditional_add_subdirectory( BUILD_PLUGINS plugins )
tde_conditional_add_subdirectory( BUILD_KNOTES knotes )
tde_conditional_add_subdirectory( BUILD_KODE kode )
tde_conditional_add_subdirectory( BUILD_KRESOURCES kresources )
tde_conditional_add_subdirectory( BUILD_WIZARDS wizards )
tde_conditional_add_subdirectory( BUILD_KABC kabc )
tde_conditional_add_subdirectory( BUILD_KONSOLEKALENDAR konsolekalendar )
tde_conditional_add_subdirectory( BUILD_KMAILCVT kmailcvt )
tde_conditional_add_subdirectory( BUILD_KARM karm )
tde_conditional_add_subdirectory( BUILD_KFILE_PLUGINS kfile-plugins )
tde_conditional_add_subdirectory( BUILD_KANDY kandy )
tde_conditional_add_subdirectory( BUILD_KNODE knode )
tde_conditional_add_subdirectory( BUILD_KMOBILE kmobile )
tde_conditional_add_subdirectory( BUILD_KITCHENSYNC kitchensync )
tde_conditional_add_subdirectory( BUILD_DOC doc )
tde_conditional_add_subdirectory( BUILD_KONTACT kontact )


##### write configure files #####################

configure_file( config.h.cmake config.h @ONLY )