GN: Update webrtc/base to recent GYP changes.
Update the webrtc/base/BUILD.gn file to reflect
webrtc/base/base.gyp changes between r6438 and r7011.
BUG=3441
TESTED= Trybots + compilation with a standalone WebRTC checkout:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default
Compilation of Chromium's 'all' target with src/third_party/webrtc
symlinked to the WebRTC checkout with this CL applied, both
with the default GN settings and using
--args="is_debug=false os=\"android\" cpu_arch=\"arm\""
R=brettw@chromium.org
Review URL: https://webrtc-codereview.appspot.com/13359004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@7022 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/base/BUILD.gn b/base/BUILD.gn
index fbf29e8..b0da45a 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -6,8 +6,6 @@
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
-# TODO(kjellander): Rebase this to base.gyp changes after r6438.
-
import("//build/config/crypto.gni")
import("//build/config/ui.gni")
import("../build/webrtc.gni")
@@ -20,7 +18,8 @@
defines = [
"FEATURE_ENABLE_SSL",
- "GTEST_RELATIVE_PATH",
+ "LOGGING=1",
+ "USE_WEBRTC_DEV_BRANCH",
]
# TODO(henrike): issue 3307, make webrtc_base build without disabling
@@ -103,10 +102,18 @@
}
}
+if (build_ssl == 0) {
+ config("external_ssl_library") {
+ assert(webrtc_ssl_root != "",
+ "You must specify webrtc_ssl_root when build_ssl==0.")
+ include_dirs = [ webrtc_ssl_root ]
+ }
+}
static_library("webrtc_base") {
cflags = []
cflags_cc = []
+ libs = []
deps= []
configs += [
@@ -264,6 +271,9 @@
"taskrunner.h",
"thread.cc",
"thread.h",
+ "thread_checker.h",
+ "thread_checker_impl.cc",
+ "thread_checker_impl.h",
"timeutils.cc",
"timeutils.h",
"timing.cc",
@@ -315,6 +325,8 @@
"callback.h",
"callback.h.pump",
"constructormagic.h",
+ "exp_filter.cc",
+ "exp_filter.h",
"filelock.cc",
"filelock.h",
"fileutils_mock.h",
@@ -388,13 +400,6 @@
]
}
- if (use_x11) {
- sources += [
- "x11windowpicker.cc",
- "x11windowpicker.h",
- ]
- }
-
if (is_mac) {
sources += [
"macasyncsocket.cc",
@@ -420,12 +425,19 @@
"win32socketserver.h",
]
}
+ if (build_json) {
+ deps += [ "//third_party/jsoncpp" ]
+ } else {
+ include_dirs += [ webrtc_jsoncpp_root ]
- deps += [ "//third_party/jsoncpp" ]
+ # When defined changes the include path for json.h to where it is
+ # expected to be when building json outside of the standalone build.
+ defines += [ "WEBRTC_EXTERNAL_JSON" ]
+ }
} # !build_with_chromium
if (is_clang) {
- # Suppress warnings from Chrome's Clang plugins.
+ # Suppress warnings from the Chrome Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
configs -= [ "//build/config/clang:find_bad_constructs" ]
}
@@ -439,8 +451,11 @@
if (use_openssl) {
direct_dependent_configs += [ ":openssl_config" ]
-
- deps += [ "//third_party/boringssl" ]
+ if (build_ssl) {
+ deps += [ "//third_party/boringssl" ]
+ } else {
+ configs += [ "external_ssl_library" ]
+ }
} else {
direct_dependent_configs += [ ":no_openssl_config" ]
}
@@ -453,7 +468,7 @@
direct_dependent_configs += [ ":android_config" ]
- libs = [
+ libs += [
"log",
"GLESv2"
]
@@ -464,12 +479,19 @@
if (is_ios) {
all_dependent_configs += [ ":ios_config" ]
- deps += [ "//net/third_party/nss/ssl:libssl" ]
+ if (build_ssl) {
+ deps += [ "//net/third_party/nss/ssl:libssl" ]
+ } else {
+ configs += [ "external_ssl_library" ]
+ }
}
- if (is_linux) {
- libs = [
- "crypto",
+ if (use_x11) {
+ sources += [
+ "x11windowpicker.cc",
+ "x11windowpicker.h",
+ ]
+ libs += [
"dl",
"rt",
"Xext",
@@ -477,7 +499,17 @@
"Xcomposite",
"Xrender",
]
- configs += [ "//third_party/nss:system_nss_no_ssl_config" ]
+ }
+
+ if (is_linux) {
+ libs += [
+ "crypto",
+ "dl",
+ "rt",
+ ]
+ if (build_ssl) {
+ configs += [ "//third_party/nss:system_nss_no_ssl_config" ]
+ }
}
if (is_mac) {
@@ -492,7 +524,7 @@
all_dependent_configs = [ ":mac_config" ]
- libs = [
+ libs += [
"crypto", # $(SDKROOT)/usr/lib/libcrypto.dylib
"ssl", # $(SDKROOT)/usr/lib/libssl.dylib
]
@@ -520,7 +552,7 @@
"winping.h",
]
- libs = [
+ libs += [
"crypt32.lib",
"iphlpapi.lib",
"secur32.lib",
@@ -536,7 +568,7 @@
}
if (is_posix && is_debug) {
- # Chromium's build/common.gypi defines this for all posix
+ # The Chromium build/common.gypi defines this for all posix
# _except_ for ios & mac. We want it there as well, e.g.
# because ASSERT and friends trigger off of it.
defines += [ "_DEBUG" ]
@@ -546,7 +578,7 @@
defines += [ "CARBON_DEPRECATED=YES" ]
}
- if (!is_ios && is_posix) {
+ if (!is_ios) {
sources += [
"openssl.h",
"openssladapter.cc",
@@ -568,18 +600,26 @@
}
if (is_mac || is_ios || is_win) {
- deps += [
- "//net/third_party/nss/ssl:libssl",
- "//third_party/nss:nspr",
- "//third_party/nss:nss",
- ]
+ if (build_ssl) {
+ deps += [
+ "//net/third_party/nss/ssl:libssl",
+ "//third_party/nss:nspr",
+ "//third_party/nss:nss",
+ ]
+ } else {
+ configs += [ "external_ssl_library" ]
+ }
}
if (is_posix && !is_mac && !is_ios && !is_android) {
if (build_with_chromium) {
deps += [ "//crypto:platform" ]
} else {
- deps += [ ":linux_system_ssl" ]
+ if (build_ssl) {
+ deps += [ ":linux_system_ssl" ]
+ } else {
+ configs += [ "external_ssl_library" ]
+ }
}
}
}
diff --git a/build/webrtc.gni b/build/webrtc.gni
index cae8166..346a062 100644
--- a/build/webrtc.gni
+++ b/build/webrtc.gni
@@ -17,6 +17,14 @@
# Disable this to avoid building the Opus audio codec.
include_opus = true
+ # Used to specify an external Jsoncpp include path when not compiling the
+ # library that comes with WebRTC (i.e. build_json == 0).
+ webrtc_jsoncpp_root = "//third_party/jsoncpp/source/include"
+
+ # Used to specify an external OpenSSL include path when not compiling the
+ # library that comes with WebRTC (i.e. build_ssl == 0).
+ webrtc_ssl_root = ""
+
# Adds video support to dependencies shared by voice and video engine.
# This should normally be enabled; the intended use is to disable only
# when building voice engine exclusively.