Implement skip for rbank process

This commit is contained in:
kaetemi 2014-02-08 23:43:42 +01:00
parent 3fadcb1f53
commit f97dfa1d09
2 changed files with 135 additions and 89 deletions

View file

@ -246,13 +246,16 @@ for igFile in igFilesAll:
# Write land IGs TXT # Write land IGs TXT
printLog(log, ">>> Write land IGs TXT <<<") printLog(log, ">>> Write land IGs TXT <<<")
igTxtFile = ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt" igTxtFile = ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt"
printLog(log, "WRITE " + ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt") if needUpdateDirNoSubdirFile(log, ExportBuildDirectory + "/" + IgLandBuildDirectory, igTxtFile):
if os.path.isfile(igTxtFile): printLog(log, "WRITE " + ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt")
os.remove(igTxtFile) if os.path.isfile(igTxtFile):
igTxt = open(igTxtFile, "w") os.remove(igTxtFile)
for igFile in igFilesAll: igTxt = open(igTxtFile, "w")
igTxt.write(igFile + "\n") for igFile in igFilesAll:
igTxt.close() igTxt.write(igFile + "\n")
igTxt.close()
else:
printLog(log, "SKIP *")
# Merge other IGs # Merge other IGs
printLog(log, ">>> Merge other IGs <<<") # (not true merge, since not necesserary) printLog(log, ">>> Merge other IGs <<<") # (not true merge, since not necesserary)

View file

@ -54,33 +54,49 @@ printLog(log, "")
# Build rbank bbox # Build rbank bbox
printLog(log, ">>> Build rbank bbox <<<") printLog(log, ">>> Build rbank bbox <<<")
tempBbox = ExportBuildDirectory + "/" + RbankBboxBuildDirectory + "/temp.bbox"
if BuildIgBoxes == "": if BuildIgBoxes == "":
toolLogFail(log, BuildIgBoxesTool, ToolSuffix) toolLogFail(log, BuildIgBoxesTool, ToolSuffix)
else: else:
mkPath(log, ExportBuildDirectory + "/" + RbankBboxBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + RbankBboxBuildDirectory)
cf = open("build_ig_boxes.cfg", "w") needUpdateIg = needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, IgLookupDirectories, tempBbox)
cf.write("\n") if needUpdateIg:
cf.write("Pathes = {\n") printLog(log, "DETECT UPDATE IG->Bbox")
for dir in IgLookupDirectories: else:
mkPath(log, ExportBuildDirectory + "/" + dir) printLog(log, "DETECT SKIP IG->Bbox")
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n") needUpdateShape = needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, ShapeLookupDirectories, tempBbox)
for dir in ShapeLookupDirectories: if needUpdateShape:
mkPath(log, ExportBuildDirectory + "/" + dir) printLog(log, "DETECT UPDATE Shape->Bbox")
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n") else:
cf.write("};\n") printLog(log, "DETECT SKIP Shape->Bbox")
cf.write("\n") if needUpdateIg or needUpdateShape:
cf.write("IGs = {\n") printLog(log, "DETECT DECIDE UPDATE")
for dir in IgLookupDirectories: cf = open("build_ig_boxes.cfg", "w")
files = findFiles(log, ExportBuildDirectory + "/" + dir, "", ".ig") cf.write("\n")
for file in files: cf.write("Pathes = {\n")
cf.write("\t\"" + os.path.basename(file)[0:-len(".ig")] + "\", \n") for dir in IgLookupDirectories:
cf.write("};\n") mkPath(log, ExportBuildDirectory + "/" + dir)
cf.write("\n") cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
cf.write("Output = \"" + ExportBuildDirectory + "/" + RbankBboxBuildDirectory + "/temp.bbox\";\n") for dir in ShapeLookupDirectories:
cf.write("\n") mkPath(log, ExportBuildDirectory + "/" + dir)
cf.close() cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
subprocess.call([ BuildIgBoxes ]) cf.write("};\n")
os.remove("build_ig_boxes.cfg") cf.write("\n")
cf.write("IGs = {\n")
for dir in IgLookupDirectories:
files = findFiles(log, ExportBuildDirectory + "/" + dir, "", ".ig")
for file in files:
cf.write("\t\"" + os.path.basename(file)[0:-len(".ig")] + "\", \n")
cf.write("};\n")
cf.write("\n")
cf.write("Output = \"" + tempBbox + "\";\n")
cf.write("\n")
cf.close()
subprocess.call([ BuildIgBoxes ])
os.remove("build_ig_boxes.cfg")
else:
printLog(log, "DETECT DECIDE SKIP")
printLog(log, "SKIP *")
printLog(log, "") printLog(log, "")
printLog(log, ">>> Build rbank build config <<<") printLog(log, ">>> Build rbank build config <<<")
@ -97,7 +113,7 @@ cf.write("BanksPath = \"" + ExportBuildDirectory + "/" + SmallbankExportDirector
cf.write("Bank = \"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + BankTileBankName + ".smallbank\";\n") cf.write("Bank = \"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + BankTileBankName + ".smallbank\";\n")
cf.write("ZoneExt = \".zonew\";\n") cf.write("ZoneExt = \".zonew\";\n")
cf.write("ZoneNHExt = \".zonenhw\";\n") cf.write("ZoneNHExt = \".zonenhw\";\n")
cf.write("IGBoxes = \"" + ExportBuildDirectory + "/" + RbankBboxBuildDirectory + "/temp.bbox\";\n") cf.write("IGBoxes = \"" + tempBbox + "\";\n")
mkPath(log, LeveldesignWorldDirectory) mkPath(log, LeveldesignWorldDirectory)
cf.write("LevelDesignWorldPath = \"" + LeveldesignWorldDirectory + "\";\n") cf.write("LevelDesignWorldPath = \"" + LeveldesignWorldDirectory + "\";\n")
mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
@ -207,69 +223,96 @@ else:
printLog(log, "SKIP " + lr1) printLog(log, "SKIP " + lr1)
printLog(log, "") printLog(log, "")
printLog(log, ">>> Build rbank process global <<<") # TODO: Check if the LR changed? printLog(log, ">>> Detect modifications to rebuild lr <<<")
if BuildRbank == "": needUpdateCmbLr = needUpdateDirByTagLog(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ".cmb", ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory, ".lr")
toolLogFail(log, BuildRbankTool, ToolSuffix) if needUpdateCmbLr:
elif ExecTimeout == "": printLog(log, "DETECT UPDATE Cmb->Lr")
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
else: else:
subprocess.call([ ExecTimeout, str(RbankBuildProcglobalTimeout), BuildRbank, "-c", "-P", "-G" ]) printLog(log, "DETECT SKIP Cmb->Lr")
printLog(log, "") needUpdateCmbRbank = needUpdateDirNoSubdirFile(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/" + RbankRbankName + ".rbank")
os.remove("build_rbank.cfg") if needUpdateCmbRbank:
printLog(log, "DETECT UPDATE Cmb->Rbank")
else:
printLog(log, "DETECT SKIP Cmb->Rbank")
needUpdateLrRbank = needUpdateDirNoSubdirFile(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory, ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/" + RbankRbankName + ".rbank")
if needUpdateLrRbank:
printLog(log, "DETECT UPDATE Lr->Rbank")
else:
printLog(log, "DETECT SKIP Lr->Rbank")
needUpdateBboxRbank = needUpdate(log, tempBbox, ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/" + RbankRbankName + ".rbank")
if needUpdateBboxRbank:
printLog(log, "DETECT UPDATE Lr->Rbank")
else:
printLog(log, "DETECT SKIP Lr->Rbank")
if needUpdateCmbLr or needUpdateCmbRbank or needUpdateLrRbank or needUpdateBboxRbank:
printLog(log, "DETECT DECIDE UPDATE")
printLog(log, ">>> Build rbank process global <<<") # This generates temp lr files. TODO: Check if the LR changed?
if BuildRbank == "":
toolLogFail(log, BuildRbankTool, ToolSuffix)
elif ExecTimeout == "":
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
else:
subprocess.call([ ExecTimeout, str(RbankBuildProcglobalTimeout), BuildRbank, "-c", "-P", "-G" ])
printLog(log, "")
os.remove("build_rbank.cfg")
printLog(log, ">>> Build rbank indoor <<<") # This generates the retrievers for the ig that have the cmb export
if BuildIndoorRbank == "":
toolLogFail(log, BuildIndoorRbankTool, ToolSuffix)
elif ExecTimeout == "":
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
else:
retrieversDir = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
mkPath(log, retrieversDir)
removeFilesRecursiveExt(log, retrieversDir, ".rbank")
removeFilesRecursiveExt(log, retrieversDir, ".gr")
removeFilesRecursiveExt(log, retrieversDir, ".lr")
cf = open("build_indoor_rbank.cfg", "w")
cf.write("\n")
mkPath(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory)
cf.write("MeshPath = \"" + ExportBuildDirectory + "/" + RBankCmbExportDirectory + "/\";\n")
# cf.write("Meshes = { };\n")
cf.write("Meshes = \n")
cf.write("{\n")
meshFiles = findFilesNoSubdir(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ".cmb")
lenCmbExt = len(".cmb")
for file in meshFiles:
cf.write("\t\"" + file[0:-lenCmbExt] + "\", \n")
cf.write("};\n")
cf.write("OutputPath = \"" + retrieversDir + "/\";\n")
# mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
# cf.write("OutputPath = \"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/\";\n")
cf.write("OutputPrefix = \"unused\";\n")
cf.write("Merge = 1;\n")
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
cf.write("MergePath = \"" + ExportBuildDirectory + "/" + RbankSmoothBuildDirectory + "/\";\n")
cf.write("MergeInputPrefix = \"temp\";\n")
cf.write("MergeOutputPrefix = \"tempMerged\";\n")
# cf.write("MergeOutputPrefix = \"" + RbankRbankName + "\";\n")
cf.write("AddToRetriever = 1;\n")
cf.write("\n")
cf.close()
subprocess.call([ ExecTimeout, str(RbankBuildIndoorTimeout), BuildIndoorRbank ])
os.remove("build_indoor_rbank.cfg")
printLog(log, "")
printLog(log, ">>> Build rbank indoor <<<")
if BuildIndoorRbank == "":
toolLogFail(log, BuildIndoorRbankTool, ToolSuffix)
elif ExecTimeout == "":
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
else:
retrieversDir = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory retrieversDir = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
mkPath(log, retrieversDir) mkPath(log, retrieversDir)
removeFilesRecursiveExt(log, retrieversDir, ".rbank") outputDir = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
removeFilesRecursiveExt(log, retrieversDir, ".gr") mkPath(log, outputDir)
removeFilesRecursiveExt(log, retrieversDir, ".lr") printLog(log, ">>> Move gr, rbank and lr <<<") # This simply renames everything
cf = open("build_indoor_rbank.cfg", "w") if needUpdateDirNoSubdir(log, retrieversDir, outputDir):
cf.write("\n") removeFilesRecursiveExt(log, outputDir, ".rbank")
mkPath(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory) removeFilesRecursiveExt(log, outputDir, ".gr")
cf.write("MeshPath = \"" + ExportBuildDirectory + "/" + RBankCmbExportDirectory + "/\";\n") removeFilesRecursiveExt(log, outputDir, ".lr")
# cf.write("Meshes = { };\n") copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged", RbankRbankName, ".rbank")
cf.write("Meshes = \n") copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged", RbankRbankName, ".gr")
cf.write("{\n") copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged_", RbankRbankName + "_", ".lr")
meshFiles = findFilesNoSubdir(log, ExportBuildDirectory + "/" + RBankCmbExportDirectory, ".cmb") else:
lenCmbExt = len(".cmb") printLog(log, "SKIP *")
for file in meshFiles:
cf.write("\t\"" + file[0:-lenCmbExt] + "\", \n")
cf.write("};\n")
cf.write("OutputPath = \"" + retrieversDir + "/\";\n")
# mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
# cf.write("OutputPath = \"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/\";\n")
cf.write("OutputPrefix = \"unused\";\n")
cf.write("Merge = 1;\n")
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
cf.write("MergePath = \"" + ExportBuildDirectory + "/" + RbankSmoothBuildDirectory + "/\";\n")
cf.write("MergeInputPrefix = \"temp\";\n")
cf.write("MergeOutputPrefix = \"tempMerged\";\n")
# cf.write("MergeOutputPrefix = \"" + RbankRbankName + "\";\n")
cf.write("AddToRetriever = 1;\n")
cf.write("\n")
cf.close()
subprocess.call([ ExecTimeout, str(RbankBuildIndoorTimeout), BuildIndoorRbank ])
os.remove("build_indoor_rbank.cfg")
printLog(log, "")
retrieversDir = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
mkPath(log, retrieversDir)
outputDir = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
mkPath(log, outputDir)
printLog(log, ">>> Move gr, rbank and lr <<<")
if needUpdateDirNoSubdir(log, retrieversDir, outputDir):
removeFilesRecursiveExt(log, outputDir, ".rbank")
removeFilesRecursiveExt(log, outputDir, ".gr")
removeFilesRecursiveExt(log, outputDir, ".lr")
copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged", RbankRbankName, ".rbank")
copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged", RbankRbankName, ".gr")
copyFilesRenamePrefixExt(log, retrieversDir, outputDir, "tempMerged_", RbankRbankName + "_", ".lr")
else: else:
printLog(log, "DETECT DECIDE SKIP")
printLog(log, "SKIP *") printLog(log, "SKIP *")
log.close() log.close()