| #!/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:])) |