aboutsummaryrefslogtreecommitdiff
path: root/tools_webrtc
diff options
context:
space:
mode:
authorYura Yaroshevich <yura.yaroshevich@gmail.com>2018-05-24 16:48:02 +0300
committerCommit Bot <commit-bot@chromium.org>2018-05-24 15:13:11 +0000
commitf517f11fcb8da94939968e5fdbeb352cc76ca71b (patch)
treee001b9fe8bae15cccc7bcf947de2ee79cd527d1e /tools_webrtc
parent94150ee487f433ac12622f16f0052e42cfe0b97c (diff)
downloadwebrtc-f517f11fcb8da94939968e5fdbeb352cc76ca71b.tar.gz
Additional switches to build_aar.py
Extra switches to GN could be passed via --extra-gn-switches. Extra switches to Ninja could be passed via --extra-ninja-switches. They could be used in different scenarios, when additional switches need to be passed to GN or Ninja. For example, when diagnosing build issues extra switch `-v` could be passed to enable verbose logging of GN and Ninja. Bug: None Change-Id: I09d18a57b3df4e698784fb7d58c02e8adecddefa Reviewed-on: https://webrtc-review.googlesource.com/78722 Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23388}
Diffstat (limited to 'tools_webrtc')
-rwxr-xr-xtools_webrtc/android/build_aar.py35
1 files changed, 28 insertions, 7 deletions
diff --git a/tools_webrtc/android/build_aar.py b/tools_webrtc/android/build_aar.py
index 5a7b56e53f..85bdea75c2 100755
--- a/tools_webrtc/android/build_aar.py
+++ b/tools_webrtc/android/build_aar.py
@@ -67,8 +67,21 @@ def _ParseArgs():
help='Debug logging.')
parser.add_argument('--extra-gn-args', default=[], nargs='*',
help="""Additional GN arguments to be used during Ninja generation.
- These are applied after any other arguments and will
- override any values defined by the script.""")
+ These are passed to gn inside `--args` switch and
+ applied after any other arguments and will
+ override any values defined by the script.
+ Example of building debug aar file:
+ build_aar.py --extra-gn-args='is_debug=true'""")
+ parser.add_argument('--extra-ninja-switches', default=[], nargs='*',
+ help="""Additional Ninja switches to be used during compilation.
+ These are applied after any other Ninja switches.
+ Example of enabling verbose Ninja output:
+ build_aar.py --extra-ninja-switches='-v'""")
+ parser.add_argument('--extra-gn-switches', default=[], nargs='*',
+ help="""Additional GN switches to be used during compilation.
+ These are applied after any other GN switches.
+ Example of enabling verbose GN output:
+ build_aar.py --extra-gn-switches='-v'""")
return parser.parse_args()
@@ -129,7 +142,8 @@ def _GetArmVersion(arch):
raise Exception('Unknown arch: ' + arch)
-def Build(build_dir, arch, use_goma, extra_gn_args):
+def Build(build_dir, arch, use_goma, extra_gn_args, extra_gn_switches,
+ extra_ninja_switches):
"""Generates target architecture using GN and builds it using ninja."""
logging.info('Building: %s', arch)
output_directory = _GetOutputDirectory(build_dir, arch)
@@ -147,11 +161,14 @@ def Build(build_dir, arch, use_goma, extra_gn_args):
gn_args_str = '--args=' + ' '.join([
k + '=' + _EncodeForGN(v) for k, v in gn_args.items()] + extra_gn_args)
- _RunGN(['gen', output_directory, gn_args_str])
+ gn_args = ['gen', output_directory, gn_args_str]
+ gn_args.extend(extra_gn_switches)
+ _RunGN(gn_args)
ninja_args = TARGETS[:]
if use_goma:
ninja_args.extend(['-j', '200'])
+ ninja_args.extend(extra_ninja_switches)
_RunNinja(output_directory, ninja_args)
@@ -181,12 +198,16 @@ def GenerateLicenses(output_dir, build_dir, archs):
def BuildAar(archs, output_file, use_goma=False, extra_gn_args=None,
- ext_build_dir=None):
+ ext_build_dir=None, extra_gn_switches=None,
+ extra_ninja_switches=None):
extra_gn_args = extra_gn_args or []
+ extra_gn_switches = extra_gn_switches or []
+ extra_ninja_switches = extra_ninja_switches or []
build_dir = ext_build_dir if ext_build_dir else tempfile.mkdtemp()
for arch in archs:
- Build(build_dir, arch, use_goma, extra_gn_args)
+ Build(build_dir, arch, use_goma, extra_gn_args, extra_gn_switches,
+ extra_ninja_switches)
with zipfile.ZipFile(output_file, 'w') as aar_file:
# Architecture doesn't matter here, arbitrarily using the first one.
@@ -206,7 +227,7 @@ def main():
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
BuildAar(args.arch, args.output, args.use_goma, args.extra_gn_args,
- args.build_dir)
+ args.build_dir, args.extra_gn_switches, args.extra_ninja_switches)
if __name__ == '__main__':