xref: /aosp_15_r20/external/cronet/build/android/gyp/bundletool.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*6777b538SAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors
3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
5*6777b538SAndroid Build Coastguard Worker
6*6777b538SAndroid Build Coastguard Worker"""Simple wrapper around the bundletool tool.
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard WorkerBundletool is distributed as a versioned jar file. This script abstracts the
9*6777b538SAndroid Build Coastguard Workerlocation and version of this jar file, as well as the JVM invokation."""
10*6777b538SAndroid Build Coastguard Worker
11*6777b538SAndroid Build Coastguard Worker# Warning: Check if still being run as python2: https://crbug.com/1322618
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Workerimport logging
14*6777b538SAndroid Build Coastguard Workerimport os
15*6777b538SAndroid Build Coastguard Workerimport sys
16*6777b538SAndroid Build Coastguard Worker
17*6777b538SAndroid Build Coastguard Workerfrom util import build_utils
18*6777b538SAndroid Build Coastguard Worker
19*6777b538SAndroid Build Coastguard Worker# Assume this is stored under build/android/gyp/
20*6777b538SAndroid Build Coastguard WorkerBUNDLETOOL_DIR = os.path.abspath(os.path.join(
21*6777b538SAndroid Build Coastguard Worker    __file__, '..', '..', '..', '..', 'third_party', 'android_build_tools',
22*6777b538SAndroid Build Coastguard Worker    'bundletool'))
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard WorkerBUNDLETOOL_JAR_PATH = os.path.join(BUNDLETOOL_DIR, 'bundletool.jar')
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker
27*6777b538SAndroid Build Coastguard Workerdef RunBundleTool(args, print_stdout=False):
28*6777b538SAndroid Build Coastguard Worker  # ASAN builds failed with the default of 1GB (crbug.com/1120202).
29*6777b538SAndroid Build Coastguard Worker  # Bug for bundletool: https://issuetracker.google.com/issues/165911616
30*6777b538SAndroid Build Coastguard Worker  cmd = build_utils.JavaCmd(xmx='4G')
31*6777b538SAndroid Build Coastguard Worker  cmd += ['-jar', BUNDLETOOL_JAR_PATH]
32*6777b538SAndroid Build Coastguard Worker  cmd += args
33*6777b538SAndroid Build Coastguard Worker  logging.debug(' '.join(cmd))
34*6777b538SAndroid Build Coastguard Worker  return build_utils.CheckOutput(
35*6777b538SAndroid Build Coastguard Worker      cmd,
36*6777b538SAndroid Build Coastguard Worker      print_stdout=print_stdout,
37*6777b538SAndroid Build Coastguard Worker      print_stderr=True,
38*6777b538SAndroid Build Coastguard Worker      fail_on_output=False,
39*6777b538SAndroid Build Coastguard Worker      stderr_filter=build_utils.FilterReflectiveAccessJavaWarnings)
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Worker
42*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__':
43*6777b538SAndroid Build Coastguard Worker  RunBundleTool(sys.argv[1:], print_stdout=True)
44