| Index: webrtc/api/api.gyp
|
| diff --git a/webrtc/api/api.gyp b/webrtc/api/api.gyp
|
| index 5f848d7663c71d77c90737b01d9156e86c9fc358..e4fa732296108a67e7ce394bd5ae0d11b3a1c667 100644
|
| --- a/webrtc/api/api.gyp
|
| +++ b/webrtc/api/api.gyp
|
| @@ -9,6 +9,271 @@
|
| {
|
| 'includes': [ '../build/common.gypi', ],
|
| 'conditions': [
|
| + ['os_posix == 1 and OS != "mac" and OS != "ios"', {
|
| + 'conditions': [
|
| + ['sysroot!=""', {
|
| + 'variables': {
|
| + 'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
|
| + },
|
| + }, {
|
| + 'variables': {
|
| + 'pkg-config': 'pkg-config'
|
| + },
|
| + }],
|
| + ],
|
| + }],
|
| + ['OS=="linux" or OS=="android"', {
|
| + 'targets': [
|
| + {
|
| + 'target_name': 'libjingle_peerconnection_jni',
|
| + 'type': 'static_library',
|
| + 'dependencies': [
|
| + '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default',
|
| + 'libjingle_peerconnection',
|
| + ],
|
| + 'sources': [
|
| + 'java/jni/classreferenceholder.cc',
|
| + 'java/jni/classreferenceholder.h',
|
| + 'java/jni/jni_helpers.cc',
|
| + 'java/jni/jni_helpers.h',
|
| + 'java/jni/native_handle_impl.cc',
|
| + 'java/jni/native_handle_impl.h',
|
| + 'java/jni/peerconnection_jni.cc',
|
| + ],
|
| + 'include_dirs': [
|
| + '<(libyuv_dir)/include',
|
| + ],
|
| + # TODO(kjellander): Make the code compile without disabling these flags.
|
| + # See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307
|
| + 'cflags': [
|
| + '-Wno-sign-compare',
|
| + '-Wno-unused-variable',
|
| + ],
|
| + 'cflags!': [
|
| + '-Wextra',
|
| + ],
|
| + 'cflags_cc!': [
|
| + '-Wnon-virtual-dtor',
|
| + '-Woverloaded-virtual',
|
| + ],
|
| + 'msvs_disabled_warnings': [
|
| + 4245, # conversion from 'int' to 'size_t', signed/unsigned mismatch.
|
| + 4267, # conversion from 'size_t' to 'int', possible loss of data.
|
| + 4389, # signed/unsigned mismatch.
|
| + ],
|
| + 'conditions': [
|
| + ['OS=="linux"', {
|
| + 'include_dirs': [
|
| + '<(java_home)/include',
|
| + '<(java_home)/include/linux',
|
| + ],
|
| + }],
|
| + ['build_json==1', {
|
| + 'dependencies': [
|
| + '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
|
| + ],
|
| + 'export_dependent_settings': [
|
| + '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
|
| + ],
|
| + }],
|
| + ['OS=="android"', {
|
| + 'sources': [
|
| + 'androidvideocapturer.cc',
|
| + 'androidvideocapturer.h',
|
| + 'java/jni/androidmediacodeccommon.h',
|
| + 'java/jni/androidmediadecoder_jni.cc',
|
| + 'java/jni/androidmediadecoder_jni.h',
|
| + 'java/jni/androidmediaencoder_jni.cc',
|
| + 'java/jni/androidmediaencoder_jni.h',
|
| + 'java/jni/androidnetworkmonitor_jni.cc',
|
| + 'java/jni/androidnetworkmonitor_jni.h',
|
| + 'java/jni/androidvideocapturer_jni.cc',
|
| + 'java/jni/androidvideocapturer_jni.h',
|
| + 'java/jni/surfacetexturehelper_jni.cc',
|
| + 'java/jni/surfacetexturehelper_jni.h',
|
| + ]
|
| + }],
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'libjingle_peerconnection_so',
|
| + 'type': 'shared_library',
|
| + 'dependencies': [
|
| + 'libjingle_peerconnection',
|
| + 'libjingle_peerconnection_jni',
|
| + ],
|
| + 'sources': [
|
| + 'java/jni/jni_onload.cc',
|
| + ],
|
| + 'variables': {
|
| + # This library uses native JNI exports; tell GYP so that the
|
| + # required symbols will be kept.
|
| + 'use_native_jni_exports': 1,
|
| + },
|
| + 'conditions': [
|
| + ['OS=="linux"', {
|
| + 'defines': [
|
| + 'HAVE_GTK',
|
| + ],
|
| + 'include_dirs': [
|
| + '<(java_home)/include',
|
| + '<(java_home)/include/linux',
|
| + ],
|
| + 'conditions': [
|
| + ['use_gtk==1', {
|
| + 'link_settings': {
|
| + 'libraries': [
|
| + '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0'
|
| + ' gtk+-2.0)',
|
| + ],
|
| + },
|
| + }],
|
| + ],
|
| + }],
|
| + ],
|
| + },
|
| + {
|
| + 'target_name': 'libjingle_peerconnection_jar',
|
| + 'type': 'none',
|
| + 'actions': [
|
| + {
|
| + # TODO(jiayl): extract peerconnection_java_files and android_java_files into a webrtc
|
| + # gyp var that can be included here, or better yet, build a proper .jar in webrtc
|
| + # and include it here.
|
| + 'variables': {
|
| + 'java_src_dir': 'java/src',
|
| + 'webrtc_base_dir': '<(webrtc_root)/base',
|
| + 'webrtc_modules_dir': '<(webrtc_root)/modules',
|
| + 'build_jar_log': '<(INTERMEDIATE_DIR)/build_jar.log',
|
| + 'peerconnection_java_files': [
|
| + 'java/src/org/webrtc/AudioSource.java',
|
| + 'java/src/org/webrtc/AudioTrack.java',
|
| + 'java/src/org/webrtc/CallSessionFileRotatingLogSink.java',
|
| + 'java/src/org/webrtc/DataChannel.java',
|
| + 'java/src/org/webrtc/IceCandidate.java',
|
| + 'java/src/org/webrtc/MediaConstraints.java',
|
| + 'java/src/org/webrtc/MediaSource.java',
|
| + 'java/src/org/webrtc/MediaStream.java',
|
| + 'java/src/org/webrtc/MediaStreamTrack.java',
|
| + 'java/src/org/webrtc/PeerConnectionFactory.java',
|
| + 'java/src/org/webrtc/PeerConnection.java',
|
| + 'java/src/org/webrtc/RtpReceiver.java',
|
| + 'java/src/org/webrtc/RtpSender.java',
|
| + 'java/src/org/webrtc/SdpObserver.java',
|
| + 'java/src/org/webrtc/StatsObserver.java',
|
| + 'java/src/org/webrtc/StatsReport.java',
|
| + 'java/src/org/webrtc/SessionDescription.java',
|
| + 'java/src/org/webrtc/VideoCapturer.java',
|
| + 'java/src/org/webrtc/VideoRenderer.java',
|
| + 'java/src/org/webrtc/VideoSource.java',
|
| + 'java/src/org/webrtc/VideoTrack.java',
|
| + '<(webrtc_base_dir)/java/src/org/webrtc/Logging.java',
|
| + ],
|
| + 'android_java_files': [
|
| + 'java/android/org/webrtc/Camera2Enumerator.java',
|
| + 'java/android/org/webrtc/CameraEnumerationAndroid.java',
|
| + 'java/android/org/webrtc/CameraEnumerator.java',
|
| + 'java/android/org/webrtc/EglBase.java',
|
| + 'java/android/org/webrtc/EglBase10.java',
|
| + 'java/android/org/webrtc/EglBase14.java',
|
| + 'java/android/org/webrtc/GlRectDrawer.java',
|
| + 'java/android/org/webrtc/GlShader.java',
|
| + 'java/android/org/webrtc/GlUtil.java',
|
| + 'java/android/org/webrtc/GlTextureFrameBuffer.java',
|
| + 'java/android/org/webrtc/NetworkMonitor.java',
|
| + 'java/android/org/webrtc/NetworkMonitorAutoDetect.java',
|
| + 'java/android/org/webrtc/RendererCommon.java',
|
| + 'java/android/org/webrtc/SurfaceTextureHelper.java',
|
| + 'java/android/org/webrtc/SurfaceViewRenderer.java',
|
| + 'java/android/org/webrtc/ThreadUtils.java',
|
| + 'java/android/org/webrtc/VideoCapturerAndroid.java',
|
| + 'java/android/org/webrtc/VideoRendererGui.java',
|
| + 'java/src/org/webrtc/MediaCodecVideoDecoder.java',
|
| + 'java/src/org/webrtc/MediaCodecVideoEncoder.java',
|
| + '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java',
|
| + '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java',
|
| + '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/BuildInfo.java',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioEffects.java',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java',
|
| + ],
|
| + },
|
| + 'action_name': 'create_jar',
|
| + 'inputs': [
|
| + '../build/build_jar.sh',
|
| + '<@(java_files)',
|
| + ],
|
| + 'outputs': [
|
| + '<(PRODUCT_DIR)/libjingle_peerconnection.jar',
|
| + ],
|
| + 'conditions': [
|
| + ['OS=="android"', {
|
| + 'variables': {
|
| + 'java_files': ['<@(peerconnection_java_files)', '<@(android_java_files)'],
|
| + 'build_classpath': '<(java_src_dir):<(DEPTH)/third_party/android_tools/sdk/platforms/android-<(android_sdk_version)/android.jar',
|
| + },
|
| + }, {
|
| + 'variables': {
|
| + 'java_files': ['<@(peerconnection_java_files)'],
|
| + 'build_classpath': '<(java_src_dir)',
|
| + },
|
| + }],
|
| + ],
|
| + 'action': [
|
| + 'bash', '-ec',
|
| + 'mkdir -p <(INTERMEDIATE_DIR) && '
|
| + '{ ../build/build_jar.sh <(java_home) <@(_outputs) '
|
| + ' <(INTERMEDIATE_DIR)/build_jar.tmp '
|
| + ' <(build_classpath) <@(java_files) '
|
| + ' > <(build_jar_log) 2>&1 || '
|
| + ' { cat <(build_jar_log) ; exit 1; } }'
|
| + ],
|
| + },
|
| + ],
|
| + 'dependencies': [
|
| + 'libjingle_peerconnection_so',
|
| + ],
|
| + },
|
| + ],
|
| + }],
|
| + ['OS=="android"', {
|
| + 'targets': [
|
| + {
|
| + # |libjingle_peerconnection_java| builds a jar file with name
|
| + # libjingle_peerconnection_java.jar using Chromes build system.
|
| + # It includes all Java files needed to setup a PeeerConnection call
|
| + # from Android.
|
| + # TODO(perkj): Consider replacing the use of
|
| + # libjingle_peerconnection_jar with this target everywhere.
|
| + 'target_name': 'libjingle_peerconnection_java',
|
| + 'type': 'none',
|
| + 'dependencies': [
|
| + 'libjingle_peerconnection_so',
|
| + ],
|
| + 'variables': {
|
| + # Designate as Chromium code and point to our lint settings to
|
| + # enable linting of the WebRTC code (this is the only way to make
|
| + # lint_action invoke the Android linter).
|
| + 'android_manifest_path': '<(webrtc_root)/build/android/AndroidManifest.xml',
|
| + 'suppressions_file': '<(webrtc_root)/build/android/suppressions.xml',
|
| + 'chromium_code': 1,
|
| + 'java_in_dir': 'java',
|
| + 'webrtc_base_dir': '<(webrtc_root)/base',
|
| + 'webrtc_modules_dir': '<(webrtc_root)/modules',
|
| + 'additional_src_dirs' : [
|
| + 'java/android',
|
| + '<(webrtc_base_dir)/java/src',
|
| + '<(webrtc_modules_dir)/audio_device/android/java/src',
|
| + '<(webrtc_modules_dir)/video_render/android/java/src',
|
| + ],
|
| + },
|
| + 'includes': ['../../build/java.gypi'],
|
| + }, # libjingle_peerconnection_java
|
| + ]
|
| + }],
|
| ['OS=="ios"', {
|
| 'targets': [
|
| {
|
| @@ -16,7 +281,7 @@
|
| 'type': 'static_library',
|
| 'dependencies': [
|
| '<(webrtc_root)/base/base.gyp:rtc_base_objc',
|
| - '../../talk/libjingle.gyp:libjingle_peerconnection',
|
| + 'libjingle_peerconnection',
|
| ],
|
| 'sources': [
|
| 'objc/RTCAVFoundationVideoSource+Private.h',
|
| @@ -82,7 +347,17 @@
|
| '-framework QuartzCore',
|
| ]
|
| }
|
| - }
|
| + },
|
| + # TODO(kjellander): Make the code compile without disabling these.
|
| + # See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307
|
| + 'cflags': [
|
| + '-Wno-return-type',
|
| + ],
|
| + 'xcode_settings': {
|
| + 'WARNING_CFLAGS': [
|
| + '-Wno-return-type',
|
| + ],
|
| + },
|
| }],
|
| ['OS=="mac"', {
|
| 'sources': [
|
| @@ -98,6 +373,129 @@
|
| },
|
| }
|
| ],
|
| - }], # OS=="ios"
|
| - ],
|
| + }], # OS=="ios"
|
| + ], # conditions
|
| + 'targets': [
|
| + {
|
| + 'target_name': 'libjingle_peerconnection',
|
| + 'type': 'static_library',
|
| + 'dependencies': [
|
| + '../../talk/libjingle.gyp:libjingle',
|
| + '../../talk/libjingle.gyp:libjingle_media',
|
| + '../../talk/libjingle.gyp:libjingle_p2p',
|
| + ],
|
| + 'sources': [
|
| + 'audiotrack.cc',
|
| + 'audiotrack.h',
|
| + 'datachannel.cc',
|
| + 'datachannel.h',
|
| + 'datachannelinterface.h',
|
| + 'dtlsidentitystore.cc',
|
| + 'dtlsidentitystore.h',
|
| + 'dtmfsender.cc',
|
| + 'dtmfsender.h',
|
| + 'dtmfsenderinterface.h',
|
| + 'jsep.h',
|
| + 'jsepicecandidate.cc',
|
| + 'jsepicecandidate.h',
|
| + 'jsepsessiondescription.cc',
|
| + 'jsepsessiondescription.h',
|
| + 'localaudiosource.cc',
|
| + 'localaudiosource.h',
|
| + 'mediaconstraintsinterface.cc',
|
| + 'mediaconstraintsinterface.h',
|
| + 'mediacontroller.cc',
|
| + 'mediacontroller.h',
|
| + 'mediastream.cc',
|
| + 'mediastream.h',
|
| + 'mediastreaminterface.h',
|
| + 'mediastreamobserver.cc',
|
| + 'mediastreamobserver.h',
|
| + 'mediastreamprovider.h',
|
| + 'mediastreamproxy.h',
|
| + 'mediastreamtrack.h',
|
| + 'mediastreamtrackproxy.h',
|
| + 'notifier.h',
|
| + 'peerconnection.cc',
|
| + 'peerconnection.h',
|
| + 'peerconnectionfactory.cc',
|
| + 'peerconnectionfactory.h',
|
| + 'peerconnectionfactoryproxy.h',
|
| + 'peerconnectioninterface.h',
|
| + 'peerconnectionproxy.h',
|
| + 'proxy.h',
|
| + 'remoteaudiosource.cc',
|
| + 'remoteaudiosource.h',
|
| + 'remotevideocapturer.cc',
|
| + 'remotevideocapturer.h',
|
| + 'rtpreceiver.cc',
|
| + 'rtpreceiver.h',
|
| + 'rtpreceiverinterface.h',
|
| + 'rtpsender.cc',
|
| + 'rtpsender.h',
|
| + 'rtpsenderinterface.h',
|
| + 'sctputils.cc',
|
| + 'sctputils.h',
|
| + 'statscollector.cc',
|
| + 'statscollector.h',
|
| + 'statstypes.cc',
|
| + 'statstypes.h',
|
| + 'streamcollection.h',
|
| + 'videosource.cc',
|
| + 'videosource.h',
|
| + 'videosourceinterface.h',
|
| + 'videosourceproxy.h',
|
| + 'videotrack.cc',
|
| + 'videotrack.h',
|
| + 'videotrackrenderers.cc',
|
| + 'videotrackrenderers.h',
|
| + 'webrtcsdp.cc',
|
| + 'webrtcsdp.h',
|
| + 'webrtcsession.cc',
|
| + 'webrtcsession.h',
|
| + 'webrtcsessiondescriptionfactory.cc',
|
| + 'webrtcsessiondescriptionfactory.h',
|
| + ],
|
| + # TODO(kjellander): Make the code compile without disabling these flags.
|
| + # See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307
|
| + 'cflags': [
|
| + '-Wno-sign-compare',
|
| + ],
|
| + 'cflags_cc!': [
|
| + '-Wnon-virtual-dtor',
|
| + '-Woverloaded-virtual',
|
| + ],
|
| + 'conditions': [
|
| + ['clang==1', {
|
| + 'cflags!': [
|
| + '-Wextra',
|
| + ],
|
| + 'xcode_settings': {
|
| + 'WARNING_CFLAGS!': ['-Wextra'],
|
| + },
|
| + }, {
|
| + 'cflags': [
|
| + '-Wno-maybe-uninitialized', # Only exists for GCC.
|
| + ],
|
| + }],
|
| + ['OS=="win"', {
|
| + # Disable warning for signed/unsigned mismatch.
|
| + 'msvs_settings': {
|
| + 'VCCLCompilerTool': {
|
| + 'AdditionalOptions!': ['/we4389'],
|
| + },
|
| + },
|
| + }],
|
| + ['OS=="win" and clang==1', {
|
| + 'msvs_settings': {
|
| + 'VCCLCompilerTool': {
|
| + 'AdditionalOptions': [
|
| + '-Wno-sign-compare',
|
| + ],
|
| + },
|
| + },
|
| + }],
|
| + ],
|
| + }, # target libjingle_peerconnection
|
| + ], # targets
|
| }
|
|
|