1import talk
2Import("env")
3
4talk.Library(env, name = "expat",
5             cppdefines = [
6               "XML_STATIC",
7             ],
8             srcs = [
9               "third_party/expat-2.0.1/lib/xmlparse.c",
10               "third_party/expat-2.0.1/lib/xmlrole.c",
11               "third_party/expat-2.0.1/lib/xmltok.c",
12             ],
13             includedirs = [
14               "third_party/expat-2.0.1/",
15             ],
16             win_cppdefines = [
17               "COMPILED_FROM_DSP",
18             ],
19             posix_cppdefines = [
20               "HAVE_EXPAT_CONFIG_H",
21             ],
22)
23talk.Library(env, name = "libsrtp",
24             srcs = [
25               "third_party/srtp/crypto/cipher/aes.c",
26               "third_party/srtp/crypto/cipher/aes_cbc.c",
27               "third_party/srtp/crypto/cipher/aes_icm.c",
28               "third_party/srtp/crypto/cipher/cipher.c",
29               "third_party/srtp/crypto/cipher/null_cipher.c",
30               "third_party/srtp/crypto/hash/auth.c",
31               "third_party/srtp/crypto/hash/hmac.c",
32               "third_party/srtp/crypto/hash/null_auth.c",
33               "third_party/srtp/crypto/hash/sha1.c",
34               "third_party/srtp/crypto/replay/rdb.c",
35               "third_party/srtp/crypto/replay/rdbx.c",
36               "third_party/srtp/crypto/replay/ut_sim.c",
37               "third_party/srtp/crypto/math/datatypes.c",
38               "third_party/srtp/crypto/math/stat.c",
39               "third_party/srtp/crypto/kernel/alloc.c",
40               "third_party/srtp/crypto/kernel/crypto_kernel.c",
41               "third_party/srtp/crypto/kernel/err.c",
42               "third_party/srtp/crypto/kernel/key.c",
43               "third_party/srtp/crypto/rng/ctr_prng.c",
44               "third_party/srtp/crypto/rng/rand_source.c",
45               "third_party/srtp/srtp/ekt.c",
46               "third_party/srtp/srtp/srtp.c",
47             ],
48             includedirs = [
49               "third_party/srtp/include",
50               "third_party/srtp/crypto/include",
51             ],
52             win_ccflags = [
53               "/wd4701",
54               "/wd4702",
55             ],
56)
57talk.Library(env, name = "libjingle",
58             lin_srcs = [
59               "base/latebindingsymboltable.cc",
60               "base/linux.cc",
61               "session/phone/libudevsymboltable.cc",
62               "session/phone/v4llookup.cc",
63             ],
64             mac_srcs = [
65               "base/macconversion.cc",
66               "base/macutils.cc",
67               "session/phone/devicemanager_mac.mm",
68             ],
69             posix_srcs = [
70               "base/unixfilesystem.cc",
71               "base/opensslidentity.cc",
72               "base/opensslstreamadapter.cc",
73               "base/sslidentity.cc",
74               "base/sslstreamadapter.cc",
75             ],
76             cppdefines = [
77               "FEATURE_ENABLE_VOICEMAIL",
78               "EXPAT_RELATIVE_PATH",
79               "SRTP_RELATIVE_PATH",
80               "XML_STATIC",
81             ],
82             srcs = [
83               "base/asyncfile.cc",
84               "base/asynchttprequest.cc",
85               "base/asyncsocket.cc",
86               "base/asynctcpsocket.cc",
87               "base/asyncudpsocket.cc",
88               "base/autodetectproxy.cc",
89               "base/base64.cc",
90               "base/basicpacketsocketfactory.cc",
91               "base/bytebuffer.cc",
92               "base/checks.cc",
93               "base/common.cc",
94               "base/diskcache.cc",
95               "base/event.cc",
96               "base/fileutils.cc",
97               "base/firewallsocketserver.cc",
98               "base/flags.cc",
99               "base/helpers.cc",
100               "base/host.cc",
101               "base/httpbase.cc",
102               "base/httpclient.cc",
103               "base/httpcommon.cc",
104               "base/httprequest.cc",
105               "base/logging.cc",
106               "base/md5c.c",
107               "base/messagehandler.cc",
108               "base/messagequeue.cc",
109               "base/nethelpers.cc",
110               "base/network.cc",
111               "base/openssladapter.cc",
112               "base/pathutils.cc",
113               "base/physicalsocketserver.cc",
114               "base/proxydetect.cc",
115               "base/proxyinfo.cc",
116               "base/ratetracker.cc",
117               "base/signalthread.cc",
118               "base/socketadapters.cc",
119               "base/socketaddress.cc",
120               "base/socketaddresspair.cc",
121               "base/socketpool.cc",
122               "base/socketstream.cc",
123               "base/ssladapter.cc",
124               "base/sslsocketfactory.cc",
125               "base/stream.cc",
126               "base/stringdigest.cc",
127               "base/stringencode.cc",
128               "base/stringutils.cc",
129               "base/task.cc",
130               "base/taskparent.cc",
131               "base/taskrunner.cc",
132               "base/thread.cc",
133               "base/time.cc",
134               "base/urlencode.cc",
135               "p2p/base/constants.cc",
136               "p2p/base/p2ptransport.cc",
137               "p2p/base/p2ptransportchannel.cc",
138               "p2p/base/parsing.cc",
139               "p2p/base/port.cc",
140               "p2p/base/pseudotcp.cc",
141               "p2p/base/relayport.cc",
142               "p2p/base/relayserver.cc",
143               "p2p/base/rawtransport.cc",
144               "p2p/base/rawtransportchannel.cc",
145               "p2p/base/session.cc",
146               "p2p/base/sessiondescription.cc",
147               "p2p/base/sessionmanager.cc",
148               "p2p/base/sessionmessages.cc",
149               "p2p/base/stun.cc",
150               "p2p/base/stunport.cc",
151               "p2p/base/stunrequest.cc",
152               "p2p/base/stunserver.cc",
153               "p2p/base/tcpport.cc",
154               "p2p/base/transport.cc",
155               "p2p/base/transportchannel.cc",
156               "p2p/base/transportchannelproxy.cc",
157               "p2p/base/udpport.cc",
158               "p2p/client/basicportallocator.cc",
159               "p2p/client/httpportallocator.cc",
160               "p2p/client/socketmonitor.cc",
161               "session/tunnel/pseudotcpchannel.cc",
162               "session/tunnel/tunnelsessionclient.cc",
163               "session/tunnel/securetunnelsessionclient.cc",
164               "session/phone/audiomonitor.cc",
165               "session/phone/call.cc",
166               "session/phone/channel.cc",
167               "session/phone/channelmanager.cc",
168               "session/phone/codec.cc",
169               "session/phone/devicemanager.cc",
170               "session/phone/filemediaengine.cc",
171               "session/phone/mediaengine.cc",
172               "session/phone/mediamonitor.cc",
173               "session/phone/mediasessionclient.cc",
174               "session/phone/rtpdump.cc",
175               "session/phone/rtcpmuxfilter.cc",
176               "session/phone/soundclip.cc",
177               "session/phone/srtpfilter.cc",
178               "xmllite/qname.cc",
179               "xmllite/xmlbuilder.cc",
180               "xmllite/xmlconstants.cc",
181               "xmllite/xmlelement.cc",
182               "xmllite/xmlnsstack.cc",
183               "xmllite/xmlparser.cc",
184               "xmllite/xmlprinter.cc",
185               "xmpp/constants.cc",
186               "xmpp/jid.cc",
187               "xmpp/ratelimitmanager.cc",
188               "xmpp/saslmechanism.cc",
189               "xmpp/xmppclient.cc",
190               "xmpp/xmppengineimpl.cc",
191               "xmpp/xmppengineimpl_iq.cc",
192               "xmpp/xmpplogintask.cc",
193               "xmpp/xmppstanzaparser.cc",
194               "xmpp/xmpptask.cc",
195             ],
196             includedirs = [
197               "third_party/libudev",
198               "third_party/expat-2.0.1/",
199               "third_party/srtp/include",
200               "third_party/srtp/crypto/include",
201             ],
202             win_srcs = [
203               "base/schanneladapter.cc",
204               "base/win32.cc",
205               "base/win32filesystem.cc",
206               "base/win32securityerrors.cc",
207               "base/win32socketserver.cc",
208               "base/win32socketinit.cc",
209               "base/win32window.cc",
210               "base/winfirewall.cc",
211               "base/winping.cc",
212             ],
213)
214talk.App(env, name = "login",
215         libs = [
216           "libjingle",
217           "expat",
218           "libxmpphelp",
219         ],
220         srcs = [
221           "examples/login/xmppthread.cc",
222           "examples/login/login_main.cc",
223         ],
224         mac_libs = [
225           "crypto",
226           "ssl",
227         ],
228         lin_libs = [
229           "libpthread",
230           ":libssl.so.0.9.8",
231         ],
232)
233talk.Library(env, name = "libxmpphelp",
234             libs = [
235               "libjingle",
236             ],
237             srcs = [
238               "examples/login/xmppauth.cc",
239               "examples/login/xmpppump.cc",
240               "examples/login/xmppsocket.cc",
241             ],
242)
243talk.App(env, name = "call",
244         mac_frameworks = [
245           "AudioToolbox",
246           "AudioUnit",
247           "Cocoa",
248           "CoreAudio",
249           "CoreFoundation",
250           "IOKit",
251           "QTKit",
252           "QuickTime",
253         ],
254         win_libs = [
255           "d3d9.lib",
256           "gdi32.lib",
257           "powrprof.lib",
258           "strmiids.lib",
259           "winmm.lib",
260         ],
261         mac_libs = [
262           "crypto",
263           "ssl",
264         ],
265         cppdefines = [
266           "FEATURE_ENABLE_VOICEMAIL",
267         ],
268         lin_libs = [
269           "libasound",
270           "libpthread",
271           ":libssl.so.0.9.8",
272         ],
273         srcs = [
274           "examples/call/call_main.cc",
275           "examples/call/callclient.cc",
276           "examples/call/console.cc",
277           "examples/call/discoitemsquerytask.cc",
278           "examples/call/friendinvitesendtask.cc",
279           "examples/call/mucinviterecvtask.cc",
280           "examples/call/mucinvitesendtask.cc",
281           "examples/call/presenceouttask.cc",
282           "examples/call/presencepushtask.cc",
283           "examples/call/voicemailjidrequester.cc",
284         ],
285         libs = [
286           "libjingle",
287           "expat",
288           "libsrtp",
289           "libxmpphelp",
290         ],
291)
292talk.App(env, name = "relayserver",
293         libs = [
294           "libjingle",
295         ],
296         srcs = [
297           "p2p/base/relayserver_main.cc",
298         ],
299         lin_libs = [
300           "libpthread",
301         ],
302)
303talk.App(env, name = "stunserver",
304         libs = [
305           "libjingle",
306         ],
307         srcs = [
308           "p2p/base/stunserver_main.cc",
309         ],
310         lin_libs = [
311           "libpthread",
312         ],
313)
314