1*03ce13f7SAndroid Build Coastguard Worker# Copyright 2019 The SwiftShader Authors. All Rights Reserved. 2*03ce13f7SAndroid Build Coastguard Worker# 3*03ce13f7SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*03ce13f7SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*03ce13f7SAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*03ce13f7SAndroid Build Coastguard Worker# 7*03ce13f7SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*03ce13f7SAndroid Build Coastguard Worker# 9*03ce13f7SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*03ce13f7SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*03ce13f7SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*03ce13f7SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*03ce13f7SAndroid Build Coastguard Worker# limitations under the License. 14*03ce13f7SAndroid Build Coastguard Worker 15*03ce13f7SAndroid Build Coastguard Workerimport argparse, json, sys 16*03ce13f7SAndroid Build Coastguard Worker 17*03ce13f7SAndroid Build Coastguard Workerdef run(): 18*03ce13f7SAndroid Build Coastguard Worker parser = argparse.ArgumentParser( 19*03ce13f7SAndroid Build Coastguard Worker description = "Generates the correct ICD JSON file for swiftshader in GN builds" 20*03ce13f7SAndroid Build Coastguard Worker ) 21*03ce13f7SAndroid Build Coastguard Worker parser.add_argument('--input', type=str, help='The template ICD JSON') 22*03ce13f7SAndroid Build Coastguard Worker parser.add_argument('--output', type=str, help='The output ICD JSON in the GN build dir') 23*03ce13f7SAndroid Build Coastguard Worker parser.add_argument('--library_path', type=str, help='The file containing a list of directories to check for stale files') 24*03ce13f7SAndroid Build Coastguard Worker args = parser.parse_args() 25*03ce13f7SAndroid Build Coastguard Worker 26*03ce13f7SAndroid Build Coastguard Worker with open(args.input) as infile: 27*03ce13f7SAndroid Build Coastguard Worker with open(args.output, 'w') as outfile: 28*03ce13f7SAndroid Build Coastguard Worker data = json.load(infile) 29*03ce13f7SAndroid Build Coastguard Worker data['ICD']['library_path'] = args.library_path 30*03ce13f7SAndroid Build Coastguard Worker json.dump(data, outfile) 31*03ce13f7SAndroid Build Coastguard Worker 32*03ce13f7SAndroid Build Coastguard Worker return 0 33*03ce13f7SAndroid Build Coastguard Worker 34*03ce13f7SAndroid Build Coastguard Workerif __name__ == "__main__": 35*03ce13f7SAndroid Build Coastguard Worker sys.exit(run()) 36