#!/usr/bin/python | |
import sys | |
import json | |
import os | |
import shutil | |
import glob | |
import re | |
from collections import OrderedDict | |
def check_file_exist (file): | |
if not os.path.exists(file): | |
printstr = "Error: " + file + " does not exist, please check!\n" | |
print(printstr) | |
exit (1) | |
debug = sys.argv[1] # True/False | |
project = sys.argv[2] # project name | |
flavor = sys.argv[3] # flavor name | |
dsp_project = sys.argv[4] # dsp project name | |
dsp_flavor = sys.argv[5] # dsp flavor name | |
modis_uesim = sys.argv[6] # check modis or uesim | |
inputTarget = sys.argv[7] # currect Target Name | |
outputTarget = sys.argv[8] # output Target Name | |
chk_append_opt = sys.argv[9].split(',') # special option | |
targetName = os.path.basename(inputTarget) | |
input_json = "tools/genTargetFile/all_dep.json" | |
build_fdr = "build/" + project + "/" + flavor | |
if modis_uesim == 'target': | |
outputFdr = build_fdr + "/bin/json" | |
else: | |
outputFdr = build_fdr + "/" + modis_uesim + "/_BUILD_XGEN/bin/json" | |
encode_enable = True | |
if sys.version_info[0] >= 3: | |
encode_enable = False | |
if debug: | |
print ("\n**********************************************************") | |
print("Project Name = %s" % project) | |
print("Flavor Name = %s" % flavor) | |
print("DSP Project Name = %s" % dsp_project) | |
print("DSP Flavor Name = %s" % dsp_flavor) | |
print("Input Target = %s" % inputTarget) | |
print("Output Target = %s" % outputTarget) | |
print("Target NAme = %s" % targetName) | |
print ("") | |
input_target_jason = "tools/genTargetFile/json/" + targetName + ".json" | |
TargetFileList = [] | |
PrerequisiteList = [] | |
if targetName != "genJson.det": | |
check_file_exist(input_target_jason) | |
str = outputTarget + ': ' + input_target_jason | |
TargetFileList = [str] | |
PrerequisiteList = [input_target_jason] | |
if debug: | |
InputFileList = [input_target_jason] | |
OutputFileList = [] | |
with open(input_target_jason , 'r') as reader: | |
JsonData = json.loads(reader.read(), object_pairs_hook=OrderedDict) | |
for option in chk_append_opt: | |
for Script_List in JsonData[option]: | |
if Script_List != "NONE": | |
check_file_exist(Script_List) | |
str = outputTarget + ': ' + Script_List | |
TargetFileList.append(str) | |
PrerequisiteList.append(Script_List) | |
JsonInputList = JsonData[option][Script_List]['InputFile']['common'] | |
if modis_uesim == 'target': | |
JsonInputList += JsonData[option][Script_List]['InputFile']['target'] | |
else: | |
JsonInputList += JsonData[option][Script_List]['InputFile']['modis_uesim'] | |
for File_List in JsonInputList: | |
File_List = File_List.replace('$proj',project).replace('$flavor',flavor).replace('$dsp_proj',dsp_project).replace('$dsp_flavor',dsp_flavor).replace('$modis_uesim',modis_uesim) | |
Glob_File_List = glob.glob(File_List) | |
if Glob_File_List: | |
for file in Glob_File_List: | |
FinalInput = file | |
str = outputTarget + ': ' + FinalInput | |
TargetFileList.append(str) | |
PrerequisiteList.append(FinalInput) | |
if debug: | |
InputFileList.append(FinalInput) | |
else: | |
check_file_exist(File_List) | |
if debug: | |
if modis_uesim == 'target': | |
JsonOutputList = JsonData[option][Script_List]['OutputFile']['target'] | |
else: | |
JsonOutputList = JsonData[option][Script_List]['OutputFile']['modis_uesim'] | |
for File_List in JsonOutputList: | |
File_List = File_List.replace('$proj',project).replace('$flavor',flavor).replace('$dsp_proj',dsp_project).replace('$dsp_flavor',dsp_flavor).replace('$modis_uesim',modis_uesim) | |
for file in glob.glob(File_List): | |
FinalOutput = file | |
OutputFileList.append(FinalOutput) | |
with open(outputTarget , 'a+') as writer: | |
writer.write('\n') | |
for item in TargetFileList: | |
if debug: | |
print(item) | |
writer.write(item + '\n') | |
writer.write('\n') | |
for item in PrerequisiteList: | |
if debug: | |
print(item) | |
writer.write(item + ':\n') | |
if debug: | |
print("\nInputFile:") | |
for item in InputFileList: | |
print(item) | |
print("\nOutputFile:") | |
for item in OutputFileList: | |
print(item) | |
print ("**********************************************************\n") |