| #!/usr/bin/env python3 |
| # Copyright 2020 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Writes a dummy R.java file from a list of R.txt files.""" |
| |
| import argparse |
| import sys |
| |
| from util import build_utils |
| from util import resource_utils |
| |
| |
| def _ConcatRTxts(rtxt_in_paths, combined_out_path): |
| all_lines = set() |
| for rtxt_in_path in rtxt_in_paths: |
| with open(rtxt_in_path) as rtxt_in: |
| all_lines.update(rtxt_in.read().splitlines()) |
| with open(combined_out_path, 'w') as combined_out: |
| combined_out.write('\n'.join(sorted(all_lines))) |
| |
| |
| def _CreateRJava(rtxts, package_name, srcjar_out): |
| with resource_utils.BuildContext() as build: |
| _ConcatRTxts(rtxts, build.r_txt_path) |
| rjava_build_options = resource_utils.RJavaBuildOptions() |
| rjava_build_options.ExportAllResources() |
| rjava_build_options.ExportAllStyleables() |
| rjava_build_options.GenerateOnResourcesLoaded(fake=True) |
| resource_utils.CreateRJavaFiles(build.srcjar_dir, |
| package_name, |
| build.r_txt_path, |
| extra_res_packages=[], |
| rjava_build_options=rjava_build_options, |
| srcjar_out=srcjar_out, |
| ignore_mismatched_values=True) |
| build_utils.ZipDir(srcjar_out, build.srcjar_dir) |
| |
| |
| def main(args): |
| parser = argparse.ArgumentParser(description='Create an R.java srcjar.') |
| build_utils.AddDepfileOption(parser) |
| parser.add_argument('--srcjar-out', |
| required=True, |
| help='Path to output srcjar.') |
| parser.add_argument('--deps-rtxts', |
| required=True, |
| help='List of rtxts of resource dependencies.') |
| parser.add_argument('--r-package', |
| required=True, |
| help='R.java package to use.') |
| options = parser.parse_args(build_utils.ExpandFileArgs(args)) |
| options.deps_rtxts = build_utils.ParseGnList(options.deps_rtxts) |
| |
| _CreateRJava(options.deps_rtxts, options.r_package, options.srcjar_out) |
| build_utils.WriteDepfile(options.depfile, |
| options.srcjar_out, |
| inputs=options.deps_rtxts) |
| |
| |
| if __name__ == "__main__": |
| sys.exit(main(sys.argv[1:])) |