Decoupling rtc_base 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_objc and rtc_base_generic)
and rtc_base will act as a proxy between these targets (this way we can avoid a
circular dependency between rtc_base_generic and rtc_base_objc).

BUG=webrtc:7743

Review-Url: https://codereview.webrtc.org/3001623003
Cr-Commit-Position: refs/heads/master@{#19661}
This commit is contained in:
mbonadei 2017-09-04 06:49:07 -07:00 committed by Commit Bot
parent 0c88a50412
commit a0a5b98937

View File

@ -429,7 +429,28 @@ rtc_source_set("rtc_json") {
}
}
rtc_static_library("rtc_base") {
rtc_source_set("rtc_base") {
public_deps = [
":rtc_base_generic",
]
if (is_ios || is_mac) {
public_deps += [ ":rtc_base_objc" ]
}
}
if (is_ios || is_mac) {
rtc_source_set("rtc_base_objc") {
sources = [
"thread_darwin.mm",
]
deps = [
":rtc_base_generic",
]
visibility = [ ":rtc_base" ]
}
}
rtc_source_set("rtc_base_generic") {
cflags = []
cflags_cc = []
libs = []
@ -538,6 +559,11 @@ rtc_static_library("rtc_base") {
"thread.h",
]
visibility = [
":rtc_base",
":rtc_base_objc",
]
# TODO(henrike): issue 3307, make rtc_base build with the Chromium default
# compiler settings.
suppressed_configs += [ "//build/config/compiler:chromium_code" ]
@ -597,10 +623,7 @@ rtc_static_library("rtc_base") {
}
if (is_ios || is_mac) {
sources += [
"macifaddrs_converter.cc",
"thread_darwin.mm",
]
sources += [ "macifaddrs_converter.cc" ]
}
if (use_x11) {