Update gn files to support Mozilla build

Bug: webrtc:8670
No-Presubmit: true
Change-Id: I085dc63daa8274b5068540cbf56b6330f40643fa
Reviewed-on: https://webrtc-review.googlesource.com/38920
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21624}
This commit is contained in:
Dan Minor
2018-01-15 10:20:00 -05:00
committed by Commit Bot
parent b8874356f6
commit 9c68613080
17 changed files with 202 additions and 75 deletions

View File

@ -15,7 +15,9 @@
import("//build/config/linux/pkg_config.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("webrtc.gni")
import("//third_party/protobuf/proto_library.gni")
if (!build_with_mozilla) {
import("//third_party/protobuf/proto_library.gni")
}
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
@ -149,6 +151,10 @@ config("common_inherited_config") {
"WEBRTC_LINUX",
"WEBRTC_ANDROID",
]
if (build_with_mozilla) {
defines += [ "WEBRTC_ANDROID_OPENSLES" ]
}
}
if (is_chromeos) {
defines += [ "CHROMEOS" ]
@ -323,27 +329,38 @@ if (!build_with_chromium) {
deps = [
":webrtc_common",
"api",
"api:transport_api",
"audio",
"call",
"common_audio",
"common_video",
"logging",
"media",
"modules",
"modules/video_capture:video_capture_internal_impl",
"ortc",
"p2p",
"pc",
"rtc_base",
"sdk",
"stats",
"system_wrappers:system_wrappers_default",
"video",
"voice_engine",
]
if (build_with_mozilla) {
deps += [
"api:video_frame_api",
"system_wrappers:field_trial_default",
"system_wrappers:metrics_default",
]
} else {
deps += [
"api",
"logging",
"p2p",
"pc",
"stats",
]
}
if (rtc_enable_protobuf) {
defines += [ "ENABLE_RTC_EVENT_LOG" ]
deps += [ "logging:rtc_event_log_proto" ]

View File

@ -14,9 +14,11 @@ if (is_android) {
group("api") {
visibility = [ "*" ]
deps = [
":libjingle_peerconnection_api",
]
deps = []
if (!build_with_mozilla) {
deps += [ ":libjingle_peerconnection_api" ]
}
}
rtc_source_set("call_api") {
@ -333,7 +335,6 @@ if (rtc_include_tests) {
"fakemetricsobserver.h",
]
deps = [
":libjingle_peerconnection_api",
"../api:peerconnection_and_implicit_call_api",
"../media:rtc_media_base",
"../rtc_base:checks",
@ -343,6 +344,9 @@ if (rtc_include_tests) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
if (!build_with_mozilla) {
deps += [ ":libjingle_peerconnection_api" ]
}
}
rtc_source_set("rtc_api_unittests") {

View File

@ -11,7 +11,6 @@ import("../webrtc.gni")
rtc_source_set("call_interfaces") {
sources = [
"audio_receive_stream.h",
"audio_send_stream.cc",
"audio_send_stream.h",
"audio_state.h",
"call.h",
@ -20,6 +19,9 @@ rtc_source_set("call_interfaces") {
"syncable.cc",
"syncable.h",
]
if (!build_with_mozilla) {
sources += [ "audio_send_stream.cc" ]
}
deps = [
":rtp_interfaces",
":video_stream_api",

View File

@ -7,7 +7,9 @@
# be found in the AUTHORS file in the root of the source tree.
import("../webrtc.gni")
import("//third_party/protobuf/proto_library.gni")
if (!build_with_mozilla) {
import("//third_party/protobuf/proto_library.gni")
}
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")

View File

@ -10,10 +10,13 @@ import("//build/config/linux/pkg_config.gni")
import("../webrtc.gni")
group("media") {
deps = [
deps = []
if (!build_with_mozilla) {
deps += [
":rtc_media",
":rtc_media_base",
]
}
}
config("rtc_media_defines_config") {
@ -113,12 +116,15 @@ rtc_static_library("rtc_media_base") {
"../call:video_stream_api",
"../common_video",
"../modules/audio_processing:audio_processing_statistics",
"../p2p",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_api",
]
if (!build_with_mozilla) {
deps += [ "../p2p" ]
}
if (is_nacl) {
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
}

View File

@ -265,7 +265,6 @@ if (rtc_include_tests) {
"remote_bitrate_estimator:remote_bitrate_estimator_unittests",
"rtp_rtcp:rtp_rtcp_unittests",
"utility:utility_unittests",
"video_capture",
"video_coding:video_coding_unittests",
"video_processing:video_processing_unittests",
]
@ -274,6 +273,10 @@ if (rtc_include_tests) {
deps += [ "desktop_capture:desktop_capture_unittests" ]
}
if (!build_with_mozilla) {
deps += [ "video_capture" ]
}
data = modules_unittests_resources
if (is_android) {

View File

@ -9,7 +9,9 @@
import("../../webrtc.gni")
import("audio_coding.gni")
import("//build/config/arm.gni")
import("//third_party/protobuf/proto_library.gni")
if (!build_with_mozilla) {
import("//third_party/protobuf/proto_library.gni")
}
visibility = [ ":*" ]
@ -853,7 +855,7 @@ rtc_static_library("webrtc_opus") {
if (rtc_build_opus) {
public_deps += [ rtc_opus_dir ]
} else if (build_with_mozilla) {
include_dirs = [ getenv("DIST") + "/include/opus" ]
include_dirs = [ "/media/libopus/include" ]
}
}

View File

@ -132,6 +132,13 @@ rtc_source_set("audio_device_generic") {
"include/fake_audio_device.h",
]
if (build_with_mozilla) {
sources += [
"opensl/single_rw_fifo.cc",
"opensl/single_rw_fifo.h",
]
}
include_dirs = []
if (is_linux) {
include_dirs += [ "linux" ]
@ -183,6 +190,14 @@ rtc_source_set("audio_device_generic") {
"log",
"OpenSLES",
]
if (build_with_mozilla) {
include_dirs += [
"/config/external/nspr",
"/nsprpub/lib/ds",
"/nsprpub/pr/include",
]
}
}
if (rtc_use_dummy_audio_file_devices) {
defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ]

View File

@ -7,8 +7,10 @@
# be found in the AUTHORS file in the root of the source tree.
import("//build/config/arm.gni")
import("//third_party/protobuf/proto_library.gni")
import("../../webrtc.gni")
if (!build_with_mozilla) {
import("//third_party/protobuf/proto_library.gni")
}
declare_args() {
# Disables the usual mode where we trust the reported system delay

View File

@ -45,7 +45,6 @@ rtc_static_library("congestion_controller") {
"../..:webrtc_common",
"../../rtc_base:checks",
"../../rtc_base:rate_limiter",
"../../rtc_base:rtc_base",
"../../system_wrappers",
"../../system_wrappers:field_trial_api",
"../../system_wrappers:metrics_api",
@ -54,6 +53,10 @@ rtc_static_library("congestion_controller") {
"../remote_bitrate_estimator",
"../rtp_rtcp:rtp_rtcp_format",
]
if (!build_with_mozilla) {
deps += [ "../../rtc_base:rtc_base" ]
}
}
rtc_source_set("estimators") {

View File

@ -31,8 +31,11 @@ rtc_static_library("primitives") {
"../..:webrtc_common",
"../../:typedefs",
"../../rtc_base:checks",
"../../rtc_base:rtc_base", # TODO(kjellander): Cleanup in bugs.webrtc.org/3806.
]
if (!build_with_mozilla) {
deps += [ "../../rtc_base:rtc_base" ] # TODO(kjellander): Cleanup in bugs.webrtc.org/3806.
}
}
if (rtc_include_tests) {
@ -298,6 +301,16 @@ rtc_static_library("desktop_capture_generic") {
"window_finder_win.h",
]
if (build_with_mozilla) {
sources += [
"app_capturer_win.cc",
"desktop_device_info.cc",
"desktop_device_info.h",
"win/desktop_device_info_win.cc",
"win/win_shared.cc",
]
}
if (rtc_use_x11) {
sources += [
"mouse_cursor_monitor_x11.cc",
@ -317,6 +330,17 @@ rtc_static_library("desktop_capture_generic") {
"x11/x_server_pixel_buffer.h",
]
configs += [ "//build/config/linux:x11" ]
if (build_with_mozilla) {
sources += [
"app_capturer_x11.cc",
"app_capturer_x11.h",
"x11/desktop_device_info_x11.cc",
"x11/desktop_device_info_x11.h",
"x11/shared_x_util.cc",
"x11/shared_x_util.h",
]
}
}
if (!is_win && !is_mac && !rtc_use_x11) {
@ -344,9 +368,14 @@ rtc_static_library("desktop_capture_generic") {
"../../system_wrappers",
"../../system_wrappers:cpu_features_api",
"../../system_wrappers:metrics_api",
"//third_party/libyuv",
]
if (build_with_mozilla) {
deps += [ "../../rtc_base:rtc_base_approved" ]
} else {
deps += [ "//third_party/libyuv" ]
}
if (use_desktop_capture_differ_sse2) {
deps += [ ":desktop_capture_differ_sse2" ]
}

View File

@ -167,8 +167,17 @@ if (!build_with_chromium) {
libs = [ "Strmiids.lib" ]
if (build_with_mozilla) {
sources += [
"windows/BaseFilter.cpp",
"windows/BaseInputPin.cpp",
"windows/BasePin.cpp",
"windows/MediaType.cpp",
]
} else {
deps += [ "//third_party/winsdk_samples" ]
}
}
if (is_ios || is_mac) {
deps += [ ":video_capture_internal_impl_objc" ]
}
@ -179,6 +188,19 @@ if (!build_with_chromium) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
if (build_with_mozilla && is_android) {
include_dirs = [
"/config/external/nspr",
"/nsprpub/lib/ds",
"/nsprpub/pr/include",
]
sources = [
"android/device_info_android.cc",
"android/video_capture_android.cc",
]
}
}
if (!is_android && rtc_include_tests) {

View File

@ -252,7 +252,6 @@ rtc_static_library("webrtc_h264") {
]
deps += [
"../../common_video",
"../../media:rtc_media_base",
"//third_party/ffmpeg:ffmpeg",
"//third_party/openh264:encoder",
]
@ -261,6 +260,10 @@ rtc_static_library("webrtc_h264") {
if (!is_win) {
cflags = [ "-Wno-deprecated-declarations" ]
}
if (!build_with_mozilla) {
deps += [ "../../media:rtc_media_base" ]
}
}
}

View File

@ -55,7 +55,7 @@ config("rtc_base_all_dependent_config") {
}
}
if (!rtc_build_ssl) {
if (!rtc_build_ssl && !build_with_mozilla) {
config("external_ssl_library") {
assert(rtc_ssl_root != "",
"You must specify rtc_ssl_root when rtc_build_ssl==0.")
@ -511,9 +511,10 @@ rtc_source_set("rtc_json") {
rtc_static_library("rtc_base") {
visibility = [ "*" ]
public_deps = [
":rtc_base_generic",
]
public_deps = []
if (!build_with_mozilla) {
public_deps += [ ":rtc_base_generic" ]
}
if (is_win) {
sources = [
"noop.cc",
@ -702,7 +703,7 @@ rtc_static_library("rtc_base_generic") {
if (rtc_build_ssl) {
deps += [ "//third_party/boringssl" ]
} else {
} else if (!build_with_mozilla) {
configs += [ ":external_ssl_library" ]
}

View File

@ -63,7 +63,15 @@ rtc_static_library("system_wrappers") {
if (is_android) {
defines += [ "WEBRTC_THREAD_RR" ]
if (build_with_mozilla) {
include_dirs = [
"/config/external/nspr",
"/nsprpub/lib/ds",
"/nsprpub/pr/include",
]
} else {
deps += [ ":cpu_features_android" ]
}
libs += [ "log" ]
}
@ -188,7 +196,7 @@ group("system_wrappers_default") {
]
}
if (is_android) {
if (is_android && !build_with_mozilla) {
rtc_static_library("cpu_features_android") {
sources = [
"source/cpu_features_android.c",

View File

@ -77,7 +77,6 @@ rtc_static_library("video") {
"../call:rtp_receiver",
"../common_video",
"../logging:rtc_event_log_api",
"../media:rtc_media_base",
"../modules:module_api",
"../modules/bitrate_controller",
"../modules/congestion_controller",
@ -97,6 +96,10 @@ rtc_static_library("video") {
"../system_wrappers",
"../voice_engine",
]
if (!build_with_mozilla) {
deps += [ "../media:rtc_media_base" ]
}
}
if (rtc_include_tests) {
@ -346,5 +349,8 @@ if (rtc_include_tests) {
if (rtc_use_h264) {
defines += [ "WEBRTC_USE_H264" ]
}
if (!build_with_mozilla) {
deps += [ "../media:rtc_media_base" ]
}
}
}

View File

@ -5,14 +5,12 @@
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import("//build/config/arm.gni")
import("//build/config/features.gni")
import("//build/config/mips.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/ui.gni")
import("//build_overrides/build.gni")
import("//testing/test.gni")
if (!build_with_chromium && is_component_build) {
print("The Gn argument `is_component_build` is currently " +
@ -57,9 +55,6 @@ declare_args() {
# Selects fixed-point code where possible.
rtc_prefer_fixed_point = false
# Enables the use of protocol buffers for debug recordings.
rtc_enable_protobuf = true
# Disable the code for the intelligibility enhancer by default.
rtc_enable_intelligibility_enhancer = false
@ -74,9 +69,6 @@ declare_args() {
# Set this to true to enable BWE test logging.
rtc_enable_bwe_test_logging = false
# Set this to disable building with support for SCTP data channels.
rtc_enable_sctp = true
# Set this to false to skip building examples.
rtc_build_examples = true
@ -86,16 +78,6 @@ declare_args() {
# Set this to false to skip building code that requires X11.
rtc_use_x11 = use_x11
# Disable these to not build components which can be externally provided.
rtc_build_json = true
rtc_build_libsrtp = true
rtc_build_libvpx = true
rtc_libvpx_build_vp9 = true
rtc_build_openmax_dl = true
rtc_build_opus = true
rtc_build_ssl = true
rtc_build_usrsctp = true
# Enable to use the Mozilla internal settings.
build_with_mozilla = false
@ -118,28 +100,10 @@ declare_args() {
# use an external implementation.
rtc_link_task_queue_impl = true
# Enable libevent task queues on platforms that support it.
# rtc_link_task_queue_impl must be set to true for this to
# have an effect.
if (is_win || is_mac || is_ios || is_nacl) {
rtc_enable_libevent = false
rtc_build_libevent = false
} else {
rtc_enable_libevent = true
rtc_build_libevent = true
}
if (current_cpu == "arm" || current_cpu == "arm64") {
rtc_prefer_fixed_point = true
}
if (!is_ios && (current_cpu != "arm" || arm_version >= 7) &&
current_cpu != "mips64el") {
rtc_use_openmax_dl = true
} else {
rtc_use_openmax_dl = false
}
# Determines whether NEON code will be built.
rtc_build_with_neon =
(current_cpu == "arm" && arm_use_neon) || current_cpu == "arm64"
@ -175,17 +139,55 @@ declare_args() {
# as Chromium, must turn this flag off so that WebRTC does not also
# initialize.
rtc_initialize_ffmpeg = !build_with_chromium
}
# Build sources requiring GTK. NOTICE: This is not present in Chrome OS
# build environments, even if available for Chromium builds.
rtc_use_gtk = !build_with_chromium
if (!build_with_mozilla) {
import("//testing/test.gni")
}
# A second declare_args block, so that declarations within it can
# depend on the possibly overridden variables in the first
# declare_args block.
declare_args() {
rtc_restrict_logging = build_with_chromium
# Enables the use of protocol buffers for debug recordings.
rtc_enable_protobuf = !build_with_mozilla
# Set this to disable building with support for SCTP data channels.
rtc_enable_sctp = !build_with_mozilla
# Disable these to not build components which can be externally provided.
rtc_build_json = !build_with_mozilla
rtc_build_libsrtp = !build_with_mozilla
rtc_build_libvpx = !build_with_mozilla
rtc_libvpx_build_vp9 = !build_with_mozilla
rtc_build_openmax_dl = !build_with_mozilla
rtc_build_opus = !build_with_mozilla
rtc_build_ssl = !build_with_mozilla
rtc_build_usrsctp = !build_with_mozilla
# Enable libevent task queues on platforms that support it.
# rtc_link_task_queue_impl must be set to true for this to
# have an effect.
if (is_win || is_mac || is_ios || is_nacl) {
rtc_enable_libevent = false
rtc_build_libevent = false
} else {
rtc_enable_libevent = true
rtc_build_libevent = !build_with_mozilla
}
if (!is_ios && (current_cpu != "arm" || arm_version >= 7) &&
current_cpu != "mips64el" && !build_with_mozilla) {
rtc_use_openmax_dl = true
} else {
rtc_use_openmax_dl = false
}
# Build sources requiring GTK. NOTICE: This is not present in Chrome OS
# build environments, even if available for Chromium builds.
rtc_use_gtk = !build_with_chromium && !build_with_mozilla
rtc_restrict_logging = build_with_chromium || build_with_mozilla
# Excluded in Chromium since its prerequisites don't require Pulse Audio.
rtc_include_pulse_audio = !build_with_chromium
@ -195,7 +197,7 @@ declare_args() {
rtc_include_internal_audio_device = !build_with_chromium
# Include tests in standalone checkout.
rtc_include_tests = !build_with_chromium
rtc_include_tests = !build_with_chromium && !build_with_mozilla
}
# Make it possible to provide custom locations for some libraries (move these