xref: /aosp_15_r20/external/cronet/build/android/gyp/flatc_java.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*6777b538SAndroid Build Coastguard Worker# Copyright 2021 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"""Generate java source files from flatbuffer files.
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard WorkerThis is the action script for the flatbuffer_java_library template.
8*6777b538SAndroid Build Coastguard Worker"""
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Workerimport argparse
11*6777b538SAndroid Build Coastguard Workerimport sys
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Workerfrom util import build_utils
14*6777b538SAndroid Build Coastguard Workerimport action_helpers
15*6777b538SAndroid Build Coastguard Workerimport zip_helpers
16*6777b538SAndroid Build Coastguard Worker
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Workerdef main(argv):
19*6777b538SAndroid Build Coastguard Worker  parser = argparse.ArgumentParser()
20*6777b538SAndroid Build Coastguard Worker  parser.add_argument('--flatc', required=True, help='Path to flatc binary.')
21*6777b538SAndroid Build Coastguard Worker  parser.add_argument('--srcjar', required=True, help='Path to output srcjar.')
22*6777b538SAndroid Build Coastguard Worker  parser.add_argument(
23*6777b538SAndroid Build Coastguard Worker      '--import-dir',
24*6777b538SAndroid Build Coastguard Worker      action='append',
25*6777b538SAndroid Build Coastguard Worker      default=[],
26*6777b538SAndroid Build Coastguard Worker      help='Extra import directory for flatbuffers, can be repeated.')
27*6777b538SAndroid Build Coastguard Worker  parser.add_argument('flatbuffers', nargs='+', help='flatbuffer source files')
28*6777b538SAndroid Build Coastguard Worker  options = parser.parse_args(argv)
29*6777b538SAndroid Build Coastguard Worker
30*6777b538SAndroid Build Coastguard Worker  import_args = []
31*6777b538SAndroid Build Coastguard Worker  for path in options.import_dir:
32*6777b538SAndroid Build Coastguard Worker    import_args += ['-I', path]
33*6777b538SAndroid Build Coastguard Worker  with build_utils.TempDir() as temp_dir:
34*6777b538SAndroid Build Coastguard Worker    build_utils.CheckOutput([options.flatc, '-j', '-o', temp_dir] +
35*6777b538SAndroid Build Coastguard Worker                            import_args + options.flatbuffers)
36*6777b538SAndroid Build Coastguard Worker
37*6777b538SAndroid Build Coastguard Worker    with action_helpers.atomic_output(options.srcjar) as f:
38*6777b538SAndroid Build Coastguard Worker      zip_helpers.zip_directory(f, temp_dir)
39*6777b538SAndroid Build Coastguard Worker
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__':
42*6777b538SAndroid Build Coastguard Worker  sys.exit(main(sys.argv[1:]))
43