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