blob: 8c6acfdd82df1b5228b18a05afca3eb1c558c423 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/features.gni")
# From third_party/libjingle/libjingle.gyp's target_defaults.
config("jingle_unexported_configs") {
defines = [
"EXPAT_RELATIVE_PATH",
"FEATURE_ENABLE_SSL",
"GTEST_RELATIVE_PATH",
"HAVE_OPENSSL_SSL_H",
"HAVE_SCTP",
"HAVE_SRTP",
"HAVE_WEBRTC_VIDEO",
"HAVE_WEBRTC_VOICE",
"LOGGING_INSIDE_WEBRTC",
"NO_MAIN_THREAD_WRAPPING",
"NO_SOUND_SYSTEM",
"SRTP_RELATIVE_PATH",
"SSL_USE_OPENSSL",
"USE_WEBRTC_DEV_BRANCH",
"ENABLE_EXTERNAL_AUTH",
"WEBRTC_CHROMIUM_BUILD",
]
include_dirs = [
"overrides",
"../../third_party/webrtc_overrides",
"source",
"../../testing/gtest/include",
"../../third_party",
"../../third_party/libyuv/include",
"../../third_party/usrsctp/usrsctplib",
]
}
# From third_party/libjingle/libjingle.gyp's target_defaults.
config("jingle_public_configs") {
include_dirs = [
"../../third_party/webrtc_overrides",
"overrides",
"source",
"../../testing/gtest/include",
"../../third_party",
]
defines = [
"FEATURE_ENABLE_SSL",
"FEATURE_ENABLE_VOICEMAIL",
"EXPAT_RELATIVE_PATH",
"GTEST_RELATIVE_PATH",
"NO_MAIN_THREAD_WRAPPING",
"NO_SOUND_SYSTEM",
]
# TODO(GYP): Port is_win blocks.
if (is_linux) {
defines += [
"LINUX",
"WEBRTC_LINUX",
]
}
if (is_mac) {
defines += [
"OSX",
"WEBRTC_MAC",
]
}
if (is_ios) {
defines += [
"IOS",
"WEBRTC_MAC",
"WEBRTC_IOS",
]
}
if (is_win) {
defines += [ "WEBRTC_WIN" ]
}
if (is_android) {
defines += [ "ANDROID" ]
}
if (is_posix) {
defines += [ "WEBRTC_POSIX" ]
}
# TODO(GYP): Support these in GN.
# if (is_bsd) {
# defines += [ "BSD" ]
# }
# if (is_openbsd) {
# defines += [ "OPENBSD" ]
# }
# if (is_freebsd) {
# defines += [ "FREEBSD" ]
# }
if (is_chromeos) {
defines += [ "CHROMEOS" ]
}
}
# From third_party/libjingle/libjingle.gyp's target_defaults.
group("jingle_deps") {
public_deps = [
"//third_party/expat",
]
deps = [
"//base",
"//crypto:platform",
"//net",
]
}
# GYP version: third_party/libjingle.gyp:libjingle
static_library("libjingle") {
p2p_dir = "../webrtc/p2p"
xmllite_dir = "../webrtc/libjingle/xmllite"
xmpp_dir = "../webrtc/libjingle/xmpp"
sources = [
# List from third_party/libjingle/libjingle_common.gypi
"$p2p_dir/base/asyncstuntcpsocket.cc",
"$p2p_dir/base/asyncstuntcpsocket.h",
"$p2p_dir/base/basicpacketsocketfactory.cc",
"$p2p_dir/base/basicpacketsocketfactory.h",
"$p2p_dir/base/candidate.h",
"$p2p_dir/base/common.h",
"$p2p_dir/base/dtlstransport.h",
"$p2p_dir/base/dtlstransportchannel.cc",
"$p2p_dir/base/dtlstransportchannel.h",
"$p2p_dir/base/p2pconstants.cc",
"$p2p_dir/base/p2pconstants.h",
"$p2p_dir/base/p2ptransport.cc",
"$p2p_dir/base/p2ptransport.h",
"$p2p_dir/base/p2ptransportchannel.cc",
"$p2p_dir/base/p2ptransportchannel.h",
"$p2p_dir/base/port.cc",
"$p2p_dir/base/port.h",
"$p2p_dir/base/portallocator.cc",
"$p2p_dir/base/portallocator.h",
"$p2p_dir/base/pseudotcp.cc",
"$p2p_dir/base/pseudotcp.h",
"$p2p_dir/base/rawtransport.cc",
"$p2p_dir/base/rawtransport.h",
"$p2p_dir/base/rawtransportchannel.cc",
"$p2p_dir/base/rawtransportchannel.h",
"$p2p_dir/base/relayport.cc",
"$p2p_dir/base/relayport.h",
"$p2p_dir/base/session.cc",
"$p2p_dir/base/session.h",
"$p2p_dir/base/sessiondescription.cc",
"$p2p_dir/base/sessiondescription.h",
"$p2p_dir/base/sessionid.h",
"$p2p_dir/base/stun.cc",
"$p2p_dir/base/stun.h",
"$p2p_dir/base/stunport.cc",
"$p2p_dir/base/stunport.h",
"$p2p_dir/base/stunrequest.cc",
"$p2p_dir/base/stunrequest.h",
"$p2p_dir/base/tcpport.cc",
"$p2p_dir/base/tcpport.h",
"$p2p_dir/base/transport.cc",
"$p2p_dir/base/transport.h",
"$p2p_dir/base/transportchannel.cc",
"$p2p_dir/base/transportchannel.h",
"$p2p_dir/base/transportchannelimpl.h",
"$p2p_dir/base/transportcontroller.cc",
"$p2p_dir/base/transportcontroller.h",
"$p2p_dir/base/transportdescription.cc",
"$p2p_dir/base/transportdescription.h",
"$p2p_dir/base/transportdescriptionfactory.cc",
"$p2p_dir/base/transportdescriptionfactory.h",
"$p2p_dir/base/turnport.cc",
"$p2p_dir/base/turnport.h",
"$p2p_dir/client/basicportallocator.cc",
"$p2p_dir/client/basicportallocator.h",
"$p2p_dir/client/httpportallocator.cc",
"$p2p_dir/client/httpportallocator.h",
"$p2p_dir/client/socketmonitor.cc",
"$p2p_dir/client/socketmonitor.h",
"$xmllite_dir/qname.cc",
"$xmllite_dir/qname.h",
"$xmllite_dir/xmlbuilder.cc",
"$xmllite_dir/xmlbuilder.h",
"$xmllite_dir/xmlconstants.cc",
"$xmllite_dir/xmlconstants.h",
"$xmllite_dir/xmlelement.cc",
"$xmllite_dir/xmlelement.h",
"$xmllite_dir/xmlnsstack.cc",
"$xmllite_dir/xmlnsstack.h",
"$xmllite_dir/xmlparser.cc",
"$xmllite_dir/xmlparser.h",
"$xmllite_dir/xmlprinter.cc",
"$xmllite_dir/xmlprinter.h",
"$xmpp_dir/asyncsocket.h",
"$xmpp_dir/constants.cc",
"$xmpp_dir/constants.h",
"$xmpp_dir/jid.cc",
"$xmpp_dir/jid.h",
"$xmpp_dir/plainsaslhandler.h",
"$xmpp_dir/prexmppauth.h",
"$xmpp_dir/saslcookiemechanism.h",
"$xmpp_dir/saslhandler.h",
"$xmpp_dir/saslmechanism.cc",
"$xmpp_dir/saslmechanism.h",
"$xmpp_dir/saslplainmechanism.h",
"$xmpp_dir/xmppclient.cc",
"$xmpp_dir/xmppclient.h",
"$xmpp_dir/xmppclientsettings.h",
"$xmpp_dir/xmppengine.h",
"$xmpp_dir/xmppengineimpl.cc",
"$xmpp_dir/xmppengineimpl.h",
"$xmpp_dir/xmppengineimpl_iq.cc",
"$xmpp_dir/xmpplogintask.cc",
"$xmpp_dir/xmpplogintask.h",
"$xmpp_dir/xmppstanzaparser.cc",
"$xmpp_dir/xmppstanzaparser.h",
"$xmpp_dir/xmpptask.cc",
"$xmpp_dir/xmpptask.h",
]
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
public_deps = [
":jingle_deps",
]
deps = [
"//third_party/webrtc/base:rtc_base",
]
# From libjingle_common.gypi's conditions list.
if (is_win) {
cflags = [ "/wd4005" ]
}
if (is_nacl) {
# For NACL, we have to add a default implementation for field_trail.
deps += [
"//native_client_sdk/src/libraries/nacl_io",
"//third_party/webrtc/system_wrappers:field_trial_default",
]
} else {
# Otherwise, we just add the field_trial which redirects to base.
sources += [ "overrides/field_trial.cc" ]
}
configs += [ ":jingle_unexported_configs" ]
public_configs = [ ":jingle_public_configs" ]
}
if (enable_webrtc) {
source_set("libjingle_webrtc") {
sources = [
"overrides/init_webrtc.cc",
"overrides/init_webrtc.h",
]
configs += [ ":jingle_unexported_configs" ]
public_configs = [ ":jingle_public_configs" ]
public_deps = [
":libjingle_webrtc_common",
]
}
source_set("libjingle_webrtc_common") {
sources = [
"../webrtc/api/audiotrack.cc",
"../webrtc/api/audiotrack.h",
"../webrtc/api/datachannel.cc",
"../webrtc/api/datachannel.h",
"../webrtc/api/dtlsidentitystore.cc",
"../webrtc/api/dtlsidentitystore.h",
"../webrtc/api/dtmfsender.cc",
"../webrtc/api/dtmfsender.h",
"../webrtc/api/jsep.h",
"../webrtc/api/jsepicecandidate.cc",
"../webrtc/api/jsepicecandidate.h",
"../webrtc/api/jsepsessiondescription.cc",
"../webrtc/api/jsepsessiondescription.h",
"../webrtc/api/localaudiosource.cc",
"../webrtc/api/localaudiosource.h",
"../webrtc/api/mediaconstraintsinterface.cc",
"../webrtc/api/mediaconstraintsinterface.h",
"../webrtc/api/mediacontroller.cc",
"../webrtc/api/mediacontroller.h",
"../webrtc/api/mediastream.cc",
"../webrtc/api/mediastream.h",
"../webrtc/api/mediastreamhandler.cc",
"../webrtc/api/mediastreamhandler.h",
"../webrtc/api/mediastreaminterface.h",
"../webrtc/api/mediastreamobserver.cc",
"../webrtc/api/mediastreamobserver.h",
"../webrtc/api/mediastreamprovider.h",
"../webrtc/api/mediastreamproxy.h",
"../webrtc/api/mediastreamtrack.h",
"../webrtc/api/mediastreamtrackproxy.h",
"../webrtc/api/notifier.h",
"../webrtc/api/peerconnection.cc",
"../webrtc/api/peerconnection.h",
"../webrtc/api/peerconnectionfactory.cc",
"../webrtc/api/peerconnectionfactory.h",
"../webrtc/api/peerconnectioninterface.h",
"../webrtc/api/portallocatorfactory.cc",
"../webrtc/api/portallocatorfactory.h",
"../webrtc/api/remoteaudiosource.cc",
"../webrtc/api/remoteaudiosource.h",
"../webrtc/api/remoteaudiotrack.cc",
"../webrtc/api/remoteaudiotrack.h",
"../webrtc/api/rtpreceiver.cc",
"../webrtc/api/rtpreceiver.h",
"../webrtc/api/rtpreceiverinterface.h",
"../webrtc/api/rtpsender.cc",
"../webrtc/api/rtpsender.h",
"../webrtc/api/rtpsenderinterface.h",
"../webrtc/api/sctputils.cc",
"../webrtc/api/sctputils.h",
"../webrtc/api/statscollector.cc",
"../webrtc/api/statscollector.h",
"../webrtc/api/statstypes.cc",
"../webrtc/api/statstypes.h",
"../webrtc/api/streamcollection.h",
"../webrtc/api/umametrics.h",
"../webrtc/api/videocapturertracksource.cc",
"../webrtc/api/videocapturertracksource.h",
"../webrtc/api/videosourceproxy.h",
"../webrtc/api/videotrack.cc",
"../webrtc/api/videotrack.h",
"../webrtc/api/videotracksource.cc",
"../webrtc/api/videotracksource.h",
"../webrtc/api/webrtcsdp.cc",
"../webrtc/api/webrtcsdp.h",
"../webrtc/api/webrtcsession.cc",
"../webrtc/api/webrtcsession.h",
"../webrtc/api/webrtcsessiondescriptionfactory.cc",
"../webrtc/api/webrtcsessiondescriptionfactory.h",
"../webrtc/media/base/audiorenderer.h",
"../webrtc/media/base/codec.cc",
"../webrtc/media/base/codec.h",
"../webrtc/media/base/cryptoparams.h",
"../webrtc/media/base/hybriddataengine.h",
"../webrtc/media/base/mediachannel.h",
"../webrtc/media/base/mediaconstants.cc",
"../webrtc/media/base/mediaconstants.h",
"../webrtc/media/base/mediaengine.cc",
"../webrtc/media/base/mediaengine.h",
"../webrtc/media/base/rtpdataengine.cc",
"../webrtc/media/base/rtpdataengine.h",
"../webrtc/media/base/rtpdump.cc",
"../webrtc/media/base/rtpdump.h",
"../webrtc/media/base/rtputils.cc",
"../webrtc/media/base/rtputils.h",
"../webrtc/media/base/streamparams.cc",
"../webrtc/media/base/streamparams.h",
"../webrtc/media/base/turnutils.cc",
"../webrtc/media/base/turnutils.h",
"../webrtc/media/base/videoadapter.cc",
"../webrtc/media/base/videoadapter.h",
"../webrtc/media/base/videobroadcaster.cc",
"../webrtc/media/base/videobroadcaster.h",
"../webrtc/media/base/videocapturer.cc",
"../webrtc/media/base/videocapturer.h",
"../webrtc/media/base/videocommon.cc",
"../webrtc/media/base/videocommon.h",
"../webrtc/media/base/videoframe.cc",
"../webrtc/media/base/videoframe.h",
"../webrtc/media/base/videoframefactory.cc",
"../webrtc/media/base/videoframefactory.h",
"../webrtc/media/base/videosourcebase.cc",
"../webrtc/media/base/videosourcebase.h",
"../webrtc/media/engine/simulcast.cc",
"../webrtc/media/engine/simulcast.h",
"../webrtc/media/engine/webrtccommon.h",
"../webrtc/media/engine/webrtcmediaengine.cc",
"../webrtc/media/engine/webrtcmediaengine.h",
"../webrtc/media/engine/webrtcvideoengine2.cc",
"../webrtc/media/engine/webrtcvideoengine2.h",
"../webrtc/media/engine/webrtcvideoframe.cc",
"../webrtc/media/engine/webrtcvideoframe.h",
"../webrtc/media/engine/webrtcvideoframefactory.cc",
"../webrtc/media/engine/webrtcvideoframefactory.h",
"../webrtc/media/engine/webrtcvoe.h",
"../webrtc/media/engine/webrtcvoiceengine.cc",
"../webrtc/media/engine/webrtcvoiceengine.h",
"../webrtc/media/sctp/sctpdataengine.cc",
"../webrtc/media/sctp/sctpdataengine.h",
"../webrtc/pc/audiomonitor.cc",
"../webrtc/pc/audiomonitor.h",
"../webrtc/pc/bundlefilter.cc",
"../webrtc/pc/bundlefilter.h",
"../webrtc/pc/channel.cc",
"../webrtc/pc/channel.h",
"../webrtc/pc/channelmanager.cc",
"../webrtc/pc/channelmanager.h",
"../webrtc/pc/currentspeakermonitor.cc",
"../webrtc/pc/currentspeakermonitor.h",
"../webrtc/pc/externalhmac.cc",
"../webrtc/pc/externalhmac.h",
"../webrtc/pc/mediamonitor.cc",
"../webrtc/pc/mediamonitor.h",
"../webrtc/pc/mediasession.cc",
"../webrtc/pc/mediasession.h",
"../webrtc/pc/mediasink.h",
"../webrtc/pc/rtcpmuxfilter.cc",
"../webrtc/pc/rtcpmuxfilter.h",
"../webrtc/pc/srtpfilter.cc",
"../webrtc/pc/srtpfilter.h",
"../webrtc/pc/voicechannel.h",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [ ":jingle_unexported_configs" ]
public_configs = [ ":jingle_public_configs" ]
deps = [
":libjingle",
"//third_party/libsrtp",
"//third_party/usrsctp",
"//third_party/webrtc",
"//third_party/webrtc/modules/media_file",
"//third_party/webrtc/modules/video_capture",
"//third_party/webrtc/system_wrappers",
"//third_party/webrtc/voice_engine",
]
}
source_set("libstunprober") {
p2p_dir = "../webrtc/p2p"
sources = [
"$p2p_dir/stunprober/stunprober.cc",
]
deps = [
":libjingle_webrtc_common",
"//third_party/webrtc/base:rtc_base",
]
}
} # enable_webrtc
# TODO(GYP): Port libjingle.gyp's enable_webrtc condition block.