##### mkter (*.G3D, *.XML, *.TES -> *.TER, *.TGD) env["MKTER"] = findTool(R"$BUILD_PATH\mkter.exe", env) def mkterEmitter(target, source, env): #TODO: XML -> DTD scanner? source.append(getCourseActorDependencies(env)) source.append(master_env["GLOBAL_TEMPLATES_CACHE"]) source.append(env.File(r'$CONFIG_BUILD_PATH\terrain_settings.dtd')) source.append(env["COURSE_MATERIAL_FILE"]) source.append(env["MKTER"]) return target, source def mkterGenerator(target, source, env, for_signature): options = '' g3d = None if env["LEVEL_AUTO_GRASS"]: options += ' -autograss' for s in source: ext = s.scanner_key() if ext == env["TXx"]: options += ' -T %s' % s elif ext == ".xml": options += ' -xml %s' % s elif ext == ".tes": options += ' -tes %s' % s elif ext == ".net": options += ' -net %s' % s elif ext == ".ubp": options += ' -m %s' % s elif ext == env["G3x"]: g3d = s elif ext in [".exe", ".txt", ".tda", ".dtd", ".cache"]: pass else: raise BuilderException('mkterGenerator does not know how to handle the source "%s"' % s) for t in target: ext = t.scanner_key() if ext == ".ter": options += ' -o %s' % t elif ext == ".tgd": # Hack for xenon because it does not generate a .TER file if env["DEST_PLATFORM"] == "xenon": options += ' -o %s' % t elif ext == ".xml": options += ' -res %s' % t elif ext == ".bip": options += ' -grass %s' % os.path.splitext(str(t))[0] elif ext in [".mcd", ".rkb"]: pass else: raise BuilderException('mkterGenerator does not know how to handle the target "%s"' % t) assert g3d cmd = r'$MKTER -x $DEST_PLATFORM %s -d $GLOBAL_TESS_TEMPLATE_PATH -G $GLOBAL_TESS_PATH -C $CONFIG_BUILD_PATH %s' % (options, g3d) if for_signature: return cmd return [cmd, checkTargets] env["BUILDERS"]["mkter"] = Builder( generator = mkterGenerator, emitter = mkterEmitter, )