• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2# Copyright 2023 The Chromium Authors
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5"""Creates a binary profile from an HRF + dex + mapping."""
6
7import argparse
8import sys
9
10from util import build_utils
11import action_helpers
12
13
14def main(args):
15  parser = argparse.ArgumentParser(description=__doc__)
16  action_helpers.add_depfile_arg(parser)
17  parser.add_argument('--output-profile',
18                      required=True,
19                      help='Path to output binary profile.')
20  parser.add_argument('--output-metadata',
21                      required=True,
22                      help='Path to output binary profile metadata.')
23  parser.add_argument('--profgen',
24                      required=True,
25                      help='Path to profgen binary.')
26  parser.add_argument('--dex',
27                      required=True,
28                      help='Path to a zip containing release dex files.')
29  parser.add_argument('--proguard-mapping',
30                      required=True,
31                      help='Path to proguard mapping for release dex.')
32  parser.add_argument('--input-profile-path',
33                      required=True,
34                      help='Path to HRF baseline profile to apply.')
35  options = parser.parse_args(build_utils.ExpandFileArgs(args))
36
37  cmd = [
38      options.profgen,
39      'bin',
40      options.input_profile_path,
41      '-o',
42      options.output_profile,
43      '-om',
44      options.output_metadata,
45      '-a',
46      options.dex,
47      '-m',
48      options.proguard_mapping,
49  ]
50  build_utils.CheckOutput(cmd, env={'JAVA_HOME': build_utils.JAVA_HOME})
51  action_helpers.write_depfile(options.depfile,
52                               options.output_profile,
53                               inputs=[options.dex])
54
55
56if __name__ == '__main__':
57  sys.exit(main(sys.argv[1:]))
58