summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
blob: dbce6644899074a2e1f871c69738084bf6f8676b (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
#################################################
#
#  (C) 2010-2011 Serghei Amelian
#  serghei (DOT) amelian (AT) gmail.com
#
#  Improvements and feedback are welcome
#
#  This file is released under GPL >= 2
#
#################################################


##### set project version ########################

include( TDEVersion )
cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} )
tde_set_project_version( )


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

project( tdenetwork )

set( PACKAGE tdenetwork )


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

include( FindPkgConfig )
include( CheckFunctionExists )
include( CheckSymbolExists )
include( CheckIncludeFile )
include( CheckIncludeFileCXX )
include( CheckCXXSourceCompiles )
include( CheckLibraryExists )
include( CheckStructHasMember )


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

include( TDEMacros )


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

include( TDESetupPaths )
tde_setup_paths( )


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

option( WITH_ALL_OPTIONS    "Enable all optional support" OFF )
option( WITH_GCC_VISIBILITY  "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} )
option( WITH_JINGLE "Enable jingle support (kopete)" ${WITH_ALL_OPTIONS} )
option( WITH_SPEEX "Enable speex support (for jingle)" ${WITH_ALL_OPTIONS} )
option( WITH_WEBCAM "Enable webcam support (kopete/msn)" ${WITH_ALL_OPTIONS} )
option( WITH_GSM "Enable GSM SMS support (kopete/sms)" ${WITH_ALL_OPTIONS} )
option( WITH_XMMS "Enable XMMS support (kopete/nowlistening)" ${WITH_ALL_OPTIONS} )
option( WITH_LIBXSLT "Enable XSLT support (kopete/webpresence)" ${WITH_ALL_OPTIONS} )
option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} )
option( WITH_SLP "Enable OpenSLP support (krdc, krfb)" ${WITH_ALL_OPTIONS} )


##### options comments ##########################

# WITH_JINGLE affects kopete[protocol_jabber]
# WITH_SPEEX  affects kopete[protocol_jabber+jingle]
# WITH_WEBCAM affects kopete[protocol_msn]
# WITH_GSM    affects kopete[protocol_sms]
# WITH_GSM    adds another backend to sms protocol in addition
#                  to smsclient and smssend, the gsmlib
# WITH_XMMS   affects kopete[plugin_nowlistening]
# WITH_LIBXSLT affects kopete[plugin_webpresence]
# WITH_ARTS   affects wifi
# WITH_SLP    affects krdc krfb


##### kopete protocols ##########################

option( BUILD_KOPETE_PROTOCOL_ALL "Build all kopete protocols" OFF )
option( BUILD_KOPETE_PROTOCOL_TESTBED "Build kopete protocol testbed" ${BUILD_KOPETE_PROTOCOL_ALL} )
option( BUILD_KOPETE_PROTOCOL_GROUPWISE "Build kopete protocol groupwise" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_MSN "Build kopete protocol msn" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_IRC "Build kopete protocol irc" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_OSCAR "Build kopete protocol oscar" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_YAHOO "Build kopete protocol yahoo" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_WINPOPUP "Build kopete protocol winpopup" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_SMS "Build kopete protocol sms" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_JABBER "Build kopete protocol jabber" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_GADU "Build kopete protocol gadu" ${BUILD_KOPETE_PROTOCOL_ALL}  )
option( BUILD_KOPETE_PROTOCOL_MEANWHILE "Build kopete protocol meanwhile" ${BUILD_KOPETE_PROTOCOL_ALL}  )


##### kopete plugins ############################

option( BUILD_KOPETE_PLUGIN_ALL "Build all kopete plugins" OFF )
option( BUILD_KOPETE_PLUGIN_LATEX "Build latex kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_AUTOREPLACE "Build autoreplace kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_HISTORY "Build history kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_CONTACTNOTES "Build contactnotes kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_CRYPTOGRAPHY "Build cryptography kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_CONNECTIONSTATUS "Build connectionstatus kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_TRANSLATOR "Build translator kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_NOWLISTENING "Build nowlistening kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_WEBPRESENCE "Build webpresence kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_TEXTEFFECT "Build texteffect kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_HIGHLIGHT "Build highlight kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_ALIAS "Build alias kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_MOTIONAUTOAWAY "Build motionautoaway kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_NETMEETING "Build netmeeting kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_ADDBOOKMARKS "Build addbookmarks kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_STATISTICS "Build statistics kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )
option( BUILD_KOPETE_PLUGIN_SMPPPDCS "Build smpppdcs kopete plugin" ${BUILD_KOPETE_PLUGIN_ALL} )


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

option( BUILD_ALL "Build all" OFF )
option( BUILD_DCOPRSS "Build dcoprss" ${BUILD_ALL} )
option( BUILD_DOC "Build doc" ${BUILD_ALL} )
option( BUILD_FILESHARING "Build filesharing" ${BUILD_ALL} )
option( BUILD_KDICT "Build kdict" ${BUILD_ALL} )
option( BUILD_TDEDNSSD "Build tdednssd" ${BUILD_ALL} )
option( BUILD_TDEFILE_PLUGINS "Build tdefile-plugins" ${BUILD_ALL} )
option( BUILD_KGET "Build kget" ${BUILD_ALL} )
option( BUILD_KNEWSTICKER "Build knewsticker" ${BUILD_ALL} )
option( BUILD_KOPETE "Build kopete" ${BUILD_ALL} )
option( BUILD_KPF "Build kpf" ${BUILD_ALL} )
option( BUILD_KPPP "Build kppp" ${BUILD_ALL} )
option( BUILD_KRDC "Build krdc" ${BUILD_ALL} )
option( BUILD_KRFB "Build krfb" ${BUILD_ALL} )
option( BUILD_KSIRC "Build ksirc" ${BUILD_ALL} )
option( BUILD_KTALKD "Build ktalkd" ${BUILD_ALL} )
option( BUILD_LANBROWSING "Build lanbrowsing" ${BUILD_ALL} )
option( BUILD_LIBRSS "Build librss" ${BUILD_ALL} )
option( BUILD_WIFI "Build wifi" ${BUILD_ALL} )


##### 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 "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" )


##### tdenetwork directories ####################

if (BUILD_KRDC OR BUILD_KRFB)
  set ( BUILD_LIBTDEVNC ON )
endif (BUILD_KRDC OR BUILD_KRFB)

tde_conditional_add_subdirectory( BUILD_LIBTDEVNC libtdevnc )
tde_conditional_add_subdirectory( BUILD_DCOPRSS dcoprss )
tde_conditional_add_subdirectory( BUILD_DOC doc )
tde_conditional_add_subdirectory( BUILD_FILESHARING filesharing )
tde_conditional_add_subdirectory( BUILD_KDICT kdict )
tde_conditional_add_subdirectory( BUILD_TDEDNSSD tdednssd )
tde_conditional_add_subdirectory( BUILD_TDEFILE_PLUGINS tdefile-plugins )
tde_conditional_add_subdirectory( BUILD_KGET kget )
tde_conditional_add_subdirectory( BUILD_KNEWSTICKER knewsticker )
tde_conditional_add_subdirectory( BUILD_KOPETE kopete )
tde_conditional_add_subdirectory( BUILD_KPF kpf )
tde_conditional_add_subdirectory( BUILD_KPPP kppp )
tde_conditional_add_subdirectory( BUILD_KRDC krdc )
tde_conditional_add_subdirectory( BUILD_KRFB krfb )
tde_conditional_add_subdirectory( BUILD_KSIRC ksirc )
tde_conditional_add_subdirectory( BUILD_KTALKD ktalkd )
tde_conditional_add_subdirectory( BUILD_LANBROWSING lanbrowsing )
tde_conditional_add_subdirectory( BUILD_LIBRSS librss )
tde_conditional_add_subdirectory( BUILD_WIFI wifi )


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

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