Setting is_component_build to false by default
Webrtc does not support component builds so we want to override the chromium default value (which can be true on debug builds if the os is different from iOS). Please note that the user can set this value to true in two ways: - using --args (e.g.: gn gen out/default --args='is_component_build=true' - changing the value in the args.gn file But in both cases the value will be ignored because we don't use the 'component' template but we rely directly on 'rtc_static_library' and 'rtc_shared_library'. BUG=webrtc:6975 NOTRY=True Review-Url: https://codereview.webrtc.org/2728643003 Cr-Commit-Position: refs/heads/master@{#17020}
This commit is contained in:
parent
02455b27a2
commit
2cb3944ba7
11
.gn
11
.gn
@ -51,3 +51,14 @@ check_targets = [
|
||||
# to force additional review for new uses of exec_script, which is strongly
|
||||
# discouraged except for gypi_to_gn calls.
|
||||
exec_script_whitelist = build_dotfile_settings.exec_script_whitelist
|
||||
|
||||
default_args = {
|
||||
# Webrtc does not support component builds because we are not using the
|
||||
# template "component" but we rely directly on "rtc_static_library" and
|
||||
# "rtc_shared_library". This means that we cannot use the chromium default
|
||||
# value for this argument.
|
||||
# This also means that the user can override this value using --args or
|
||||
# the args.gn file but this setting will be ignored because we don't support
|
||||
# component builds.
|
||||
is_component_build = false
|
||||
}
|
||||
|
||||
@ -213,10 +213,10 @@
|
||||
'gn', 'openh264_release_bot', 'x64'
|
||||
],
|
||||
'perf_release_bot_x86': [
|
||||
'gn', 'openh264', 'release', 'static', 'goma', 'x86'
|
||||
'gn', 'openh264', 'release', 'goma', 'x86'
|
||||
],
|
||||
'perf_release_bot_x64': [
|
||||
'gn', 'openh264', 'release', 'static', 'goma', 'x64'
|
||||
'gn', 'openh264', 'release', 'goma', 'x64'
|
||||
],
|
||||
'libfuzzer_asan_release_bot_x64': [
|
||||
'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264_release_bot', 'x64'
|
||||
@ -286,13 +286,13 @@
|
||||
'android', 'gn', 'debug_static_bot', 'x64'
|
||||
],
|
||||
'android_asan_shared_release_bot_arm': [
|
||||
'android', 'gn', 'asan', 'clang', 'shared', 'release_bot', 'arm'
|
||||
'android', 'gn', 'asan', 'clang', 'release_bot', 'arm'
|
||||
],
|
||||
'perf_android_release_bot_arm': [
|
||||
'android', 'gn', 'release', 'static', 'goma', 'arm'
|
||||
'android', 'gn', 'release', 'goma', 'arm'
|
||||
],
|
||||
'perf_android_release_bot_arm64': [
|
||||
'android', 'gn', 'release', 'static', 'goma', 'arm64'
|
||||
'android', 'gn', 'release', 'goma', 'arm64'
|
||||
],
|
||||
|
||||
# This is used for tracking purposes; any bot that uses this config
|
||||
@ -334,11 +334,11 @@
|
||||
},
|
||||
|
||||
'debug_bot': {
|
||||
'mixins': ['debug', 'shared', 'goma'],
|
||||
'mixins': ['debug', 'goma'],
|
||||
},
|
||||
|
||||
'debug_static_bot': {
|
||||
'mixins': ['debug', 'static', 'minimal_symbols', 'goma'],
|
||||
'mixins': ['debug', 'minimal_symbols', 'goma'],
|
||||
},
|
||||
|
||||
# This mixin is used to force configs that use it to fail. It
|
||||
@ -413,15 +413,7 @@
|
||||
},
|
||||
|
||||
'release_bot': {
|
||||
'mixins': ['release', 'static', 'dcheck_always_on', 'goma'],
|
||||
},
|
||||
|
||||
'shared': {
|
||||
'gn_args': 'is_component_build=true',
|
||||
},
|
||||
|
||||
'static': {
|
||||
'gn_args': 'is_component_build=false',
|
||||
'mixins': ['release', 'dcheck_always_on', 'goma'],
|
||||
},
|
||||
|
||||
'syzyasan': {
|
||||
|
||||
@ -13,6 +13,21 @@ import("//build/config/sanitizers/sanitizers.gni")
|
||||
import("//build/config/ui.gni")
|
||||
import("//build_overrides/build.gni")
|
||||
import("//testing/test.gni")
|
||||
|
||||
if (is_component_build) {
|
||||
print("The Gn argument `is_component_build` is currently " +
|
||||
"ignored for WebRTC builds.")
|
||||
print("Component builds are supported by Chromium and the argument " +
|
||||
"`is_component_build` makes it possible to create shared libraries " +
|
||||
"instead of static libraries.")
|
||||
print("If an app depends on WebRTC it makes sense to just depend on the " +
|
||||
"WebRTC static library, so there is no difference between " +
|
||||
"`is_component_build=true` and `is_component_build=false`.")
|
||||
print(
|
||||
"More info about component builds at: " + "https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md")
|
||||
assert(!is_component_build, "Component builds are not supported in WebRTC.")
|
||||
}
|
||||
|
||||
if (is_ios) {
|
||||
import("//build/config/ios/rules.gni")
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user