Chromium Code Reviews| Index: webrtc/media/BUILD.gn |
| diff --git a/webrtc/media/BUILD.gn b/webrtc/media/BUILD.gn |
| index 9c76d8c44e73bd6235807e570a2a919f62a75bed..723ae33639bb480abdcfefc7c645e2b31863bb40 100644 |
| --- a/webrtc/media/BUILD.gn |
| +++ b/webrtc/media/BUILD.gn |
| @@ -23,13 +23,40 @@ config("rtc_media_defines_config") { |
| ] |
| } |
| -rtc_static_library("rtc_media_base") { |
| +config("rtc_media_warnings_config") { |
| + # GN orders flags on a target before flags from configs. The default config |
| + # adds these flags so to cancel them out they need to come from a config and |
| + # cannot be on the target directly. |
| + if (!is_win) { |
| + cflags = [ "-Wno-deprecated-declarations" ] |
| + } |
| +} |
| + |
| +rtc_source_set("rtc_media_base_audio") { |
| + sources = [ |
| + "base/audiosource.h", |
| + ] |
| +} |
| + |
| +rtc_source_set("rtc_media_base_video") { |
| + deps = [ |
| + "../api:video_frame_api", |
| + "../common_video:common_video", |
| + ] |
| +} |
| + |
| +# This target is used to build WebRTC without audio and video support but it |
| +# contains more than just datachannel related classes. |
| +# TODO(zhihuang): Split this target further into a target containing only |
| +# datachannel related classes and a target containing common classes for media |
| +# base. |
| +rtc_source_set("rtc_media_base_data") { |
| # TODO(kjellander): Remove (bugs.webrtc.org/6828) |
| # Enabling GN check triggers cyclic dependency error: |
| - # //webrtc/media:rtc_media_base -> |
| - # //webrtc/pc:rtc_pc -> |
| - # //webrtc/media:media -> |
| - # //webrtc/media:rtc_media_base |
| + # //webrtc/media:rtc_media_base_data -> |
| + # //webrtc/pc:rtc_pc_base -> |
| + # //webrtc/media:rtc_data -> |
| + # //webrtc/media:rtc_media_base_data |
| check_includes = false |
| defines = [] |
| libs = [] |
| @@ -37,11 +64,12 @@ rtc_static_library("rtc_media_base") { |
| sources = [ |
| "base/adaptedvideotracksource.cc", |
| "base/adaptedvideotracksource.h", |
| - "base/audiosource.h", |
| "base/codec.cc", |
| "base/codec.h", |
| "base/cryptoparams.h", |
| "base/device.h", |
| + "base/h264_profile_level_id.cc", |
| + "base/h264_profile_level_id.h", |
| "base/mediachannel.h", |
| "base/mediaconstants.cc", |
| "base/mediaconstants.h", |
| @@ -87,13 +115,8 @@ rtc_static_library("rtc_media_base") { |
| deps += [ |
| "..:webrtc_common", |
| "../api:libjingle_peerconnection_api", |
| - "../api:video_frame_api", |
| - "../api/audio_codecs:audio_codecs_api", |
| - "../api/audio_codecs:builtin_audio_encoder_factory", |
| "../base:rtc_base", |
| "../base:rtc_base_approved", |
| - "../call:call_interfaces", |
| - "../common_video:common_video", |
| "../p2p", |
| ] |
| @@ -102,14 +125,15 @@ rtc_static_library("rtc_media_base") { |
| } |
| } |
| -rtc_static_library("rtc_media") { |
| - # TODO(kjellander): Remove (bugs.webrtc.org/6828) |
| - # Enabling GN check triggers cyclic dependency error: |
| - # //webrtc/media:media -> |
| - # //webrtc/media:rtc_media -> |
| - # //webrtc/pc:rtc_pc -> |
| - # //webrtc/media:media |
| - check_includes = false |
| +rtc_source_set("rtc_media_base") { |
| + public_deps = [ |
| + ":rtc_media_base_audio", |
| + ":rtc_media_base_data", |
| + ":rtc_media_base_video", |
| + ] |
| +} |
| + |
| +rtc_static_library("rtc_audio_video") { |
| defines = [] |
| libs = [] |
| deps = [] |
| @@ -145,15 +169,9 @@ rtc_static_library("rtc_media") { |
| "engine/webrtcvoe.h", |
| "engine/webrtcvoiceengine.cc", |
| "engine/webrtcvoiceengine.h", |
| - "sctp/sctptransportinternal.h", |
| ] |
| - if (rtc_enable_sctp) { |
| - sources += [ |
| - "sctp/sctptransport.cc", |
| - "sctp/sctptransport.h", |
| - ] |
| - } |
| + configs += [ ":rtc_media_warnings_config" ] |
| if (!build_with_chromium && is_clang) { |
| # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
| @@ -191,15 +209,6 @@ rtc_static_library("rtc_media") { |
| include_dirs += [ "$rtc_libyuv_dir/include" ] |
| } |
| - if (rtc_enable_sctp && rtc_build_usrsctp) { |
| - include_dirs += [ |
| - # TODO(jiayl): move this into the public_configs of |
| - # //third_party/usrsctp/BUILD.gn. |
| - "//third_party/usrsctp/usrsctplib", |
| - ] |
| - deps += [ "//third_party/usrsctp" ] |
| - } |
| - |
| public_configs = [] |
| if (build_with_chromium) { |
| deps += [ "../modules/video_capture:video_capture" ] |
| @@ -213,16 +222,22 @@ rtc_static_library("rtc_media") { |
| deps += [ "../modules/audio_processing/aec_dump:null_aec_dump_factory" ] |
| } |
| deps += [ |
| - ":rtc_media_base", |
| + ":rtc_media_base_audio", |
| + ":rtc_media_base_data", |
| + ":rtc_media_base_video", |
| + "..:video_stream_api", |
| "..:webrtc_common", |
| "../api:call_api", |
| + "../api:libjingle_peerconnection_api", |
| "../api:transport_api", |
| "../api:video_frame_api", |
| "../api/audio_codecs:audio_codecs_api", |
| "../api/audio_codecs:builtin_audio_decoder_factory", |
| + "../api/audio_codecs:builtin_audio_encoder_factory", |
| "../api/video_codecs:video_codecs_api", |
| "../base:rtc_base", |
| "../base:rtc_base_approved", |
| + "../base:rtc_task_queue", |
| "../call", |
| "../common_video:common_video", |
| "../modules/audio_coding:rent_a_codec", |
| @@ -236,12 +251,68 @@ rtc_static_library("rtc_media") { |
| "../modules/video_coding:webrtc_vp8", |
| "../modules/video_coding:webrtc_vp9", |
| "../p2p:rtc_p2p", |
| + "../pc:rtc_pc_base", |
| "../system_wrappers", |
| "../video", |
| "../voice_engine", |
| ] |
| } |
| +rtc_static_library("rtc_data") { |
| + defines = [] |
| + deps = [] |
| + |
| + if (rtc_enable_sctp) { |
| + sources = [ |
| + "sctp/sctptransport.cc", |
| + "sctp/sctptransport.h", |
| + "sctp/sctptransportinternal.h", |
| + ] |
| + } |
| + |
| + configs += [ ":rtc_media_warnings_config" ] |
| + |
| + if (!build_with_chromium && is_clang) { |
| + # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
| + suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] |
| + } |
| + |
| + if (is_win) { |
| + cflags = [ |
| + "/wd4245", # conversion from "int" to "size_t", signed/unsigned mismatch. |
| + "/wd4267", # conversion from "size_t" to "int", possible loss of data. |
| + "/wd4389", # signed/unsigned mismatch. |
| + ] |
| + } |
| + |
| + if (rtc_enable_sctp && rtc_build_usrsctp) { |
| + include_dirs = [ |
| + # TODO(jiayl): move this into the public_configs of |
| + # //third_party/usrsctp/BUILD.gn. |
| + "//third_party/usrsctp/usrsctplib", |
| + ] |
| + deps += [ "//third_party/usrsctp" ] |
| + } |
| + |
| + deps += [ |
| + ":rtc_media_base_data", |
| + "..:webrtc_common", |
| + "../api:call_api", |
| + "../api:transport_api", |
| + "../base:rtc_base", |
| + "../base:rtc_base_approved", |
| + "../p2p:rtc_p2p", |
| + "../system_wrappers", |
| + ] |
| +} |
| + |
| +rtc_source_set("rtc_media") { |
| + public_deps = [ |
| + ":rtc_audio_video", |
| + ":rtc_data", |
| + ] |
| +} |
| + |
|
Taylor Brandstetter
2017/06/14 01:54:16
Given the current approach of this CL, some of the
Zhi Huang
2017/06/14 06:57:01
Done. Now we only have rtc_media_base.
|
| if (rtc_include_tests) { |
| config("rtc_unittest_main_config") { |
| # GN orders flags on a target before flags from configs. The default config |