Add --use-remoteexec option to build_aar.py

build_aar.py is used at "build android archive" step.
This script also needs to support reclient.

Bug: b/243628179
Change-Id: Ic95058195db0b97109150a009fe44f87c5ebf2d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273600
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Takuto Ikuta <tikuta@google.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37960}
This commit is contained in:
Junji Watanabe
2022-08-31 12:59:21 +09:00
committed by WebRTC LUCI CQ
parent 8bff1a81cb
commit 1a7dd713bf

View File

@ -68,6 +68,10 @@ def _ParseArgs():
action='store_true',
default=False,
help='Use goma.')
parser.add_argument('--use-remoteexec',
action='store_true',
default=False,
help='Use RBE.')
parser.add_argument('--use-unstripped-libs',
action='store_true',
default=False,
@ -163,8 +167,8 @@ def _GetArmVersion(arch):
raise Exception('Unknown arch: ' + arch)
def Build(build_dir, arch, use_goma, extra_gn_args, extra_gn_switches,
extra_ninja_switches):
def Build(build_dir, arch, use_goma, use_remoteexe, 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)
@ -174,7 +178,8 @@ def Build(build_dir, arch, use_goma, extra_gn_args, extra_gn_switches,
'is_component_build': False,
'rtc_include_tests': False,
'target_cpu': _GetTargetCpu(arch),
'use_goma': use_goma
'use_goma': use_goma,
'use_remoteexec': use_remoteexe,
}
arm_version = _GetArmVersion(arch)
if arm_version:
@ -187,7 +192,7 @@ def Build(build_dir, arch, use_goma, extra_gn_args, extra_gn_switches,
_RunGN(gn_args_list)
ninja_args = TARGETS[:]
if use_goma:
if use_goma or use_remoteexe:
ninja_args.extend(['-j', '200'])
ninja_args.extend(extra_ninja_switches)
_RunNinja(output_directory, ninja_args)
@ -223,6 +228,7 @@ def GenerateLicenses(output_dir, build_dir, archs):
def BuildAar(archs,
output_file,
use_goma=False,
use_remoteexe=False,
extra_gn_args=None,
ext_build_dir=None,
extra_gn_switches=None,
@ -234,8 +240,8 @@ def BuildAar(archs,
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, extra_gn_switches,
extra_ninja_switches)
Build(build_dir, arch, use_goma, use_remoteexe, 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.
@ -254,9 +260,9 @@ def main():
args = _ParseArgs()
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.extra_gn_switches, args.extra_ninja_switches,
args.use_unstripped_libs)
BuildAar(args.arch, args.output, args.use_goma, args.use_remoteexe,
args.extra_gn_args, args.build_dir, args.extra_gn_switches,
args.extra_ninja_switches, args.use_unstripped_libs)
if __name__ == '__main__':