| #!/usr/bin/env python3 |
| # Copyright 2023 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Creates a binary profile from an HRF + dex + mapping.""" |
| |
| import argparse |
| import sys |
| |
| from util import build_utils |
| import action_helpers |
| |
| |
| def main(args): |
| parser = argparse.ArgumentParser(description=__doc__) |
| action_helpers.add_depfile_arg(parser) |
| parser.add_argument('--output-profile', |
| required=True, |
| help='Path to output binary profile.') |
| parser.add_argument('--output-metadata', |
| required=True, |
| help='Path to output binary profile metadata.') |
| parser.add_argument('--profgen', |
| required=True, |
| help='Path to profgen binary.') |
| parser.add_argument('--dex', |
| required=True, |
| help='Path to a zip containing release dex files.') |
| parser.add_argument('--proguard-mapping', |
| required=True, |
| help='Path to proguard mapping for release dex.') |
| parser.add_argument('--input-profile-path', |
| required=True, |
| help='Path to HRF baseline profile to apply.') |
| options = parser.parse_args(build_utils.ExpandFileArgs(args)) |
| |
| cmd = [ |
| options.profgen, |
| 'bin', |
| options.input_profile_path, |
| '-o', |
| options.output_profile, |
| '-om', |
| options.output_metadata, |
| '-a', |
| options.dex, |
| '-m', |
| options.proguard_mapping, |
| ] |
| build_utils.CheckOutput(cmd, env={'JAVA_HOME': build_utils.JAVA_HOME}) |
| action_helpers.write_depfile(options.depfile, |
| options.output_profile, |
| inputs=[options.dex]) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main(sys.argv[1:])) |