Decoupling rtc_base_approved from Obj-C code

The goal of this CL is to separate Obj-C/Obj-C++ code from targets which have
also C++ code (see https://bugs.chromium.org/p/webrtc/issues/detail?id=7743
for more information).

To achieve this we have created 2 targets (rtc_base_approved_objc and
rtc_base_approved_generic) and rtc_base_approved will act as a proxy between
these targets (this way we can avoid a circular dependency between
rtc_base_approved_generic and rtc_base_approved_objc).

BUG=webrtc:7743
NOTRY=True

Review-Url: https://codereview.webrtc.org/2988433002
Cr-Commit-Position: refs/heads/master@{#19767}
This commit is contained in:
mbonadei 2017-09-11 03:43:34 -07:00 committed by Commit Bot
parent 0677904e1b
commit bc37847978

View File

@ -31,12 +31,6 @@ group("base") {
}
}
config("rtc_base_approved_all_dependent_config") {
if (is_mac && !build_with_chromium) {
libs = [ "Foundation.framework" ] # needed for logging_mac.mm
}
}
config("rtc_base_chromium_config") {
defines = [ "NO_MAIN_THREAD_WRAPPING" ]
}
@ -86,8 +80,22 @@ source_set("compile_assert_c") {
]
}
rtc_source_set("rtc_base_approved") {
public_deps = [
":rtc_base_approved_generic",
]
if (is_mac && !build_with_chromium) {
public_deps += [ ":rtc_base_approved_objc" ]
}
}
# The subset of rtc_base approved for use outside of libjingle.
rtc_static_library("rtc_base_approved") {
rtc_source_set("rtc_base_approved_generic") {
visibility = [
":rtc_base_approved",
":rtc_base_approved_objc",
]
# TODO(kjellander): Remove (bugs.webrtc.org/7480)
# Enabling GN check triggers a cyclic dependency caused by rate_limiter.cc:
# :rtc_base_approved -> ../system_wrappers -> :rtc_base_approved
@ -95,7 +103,6 @@ rtc_static_library("rtc_base_approved") {
defines = []
libs = []
deps = []
all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
sources = [
"array_view.h",
@ -209,7 +216,6 @@ rtc_static_library("rtc_base_approved") {
sources += [
"logging.cc",
"logging.h",
"logging_mac.mm",
]
}
if (is_component_build && is_win) {
@ -289,6 +295,24 @@ rtc_static_library("rtc_base_approved") {
}
}
if (is_mac && !build_with_chromium) {
config("rtc_base_approved_objc_all_dependent_config") {
visibility = [ ":rtc_base_approved_objc" ]
libs = [ "Foundation.framework" ] # needed for logging_mac.mm
}
rtc_source_set("rtc_base_approved_objc") {
visibility = [ ":rtc_base_approved" ]
all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
sources = [
"logging_mac.mm",
]
deps = [
":rtc_base_approved_generic",
]
}
}
rtc_source_set("rtc_task_queue") {
deps = [
":rtc_base_approved",