def get_cfg(): ctx = ConfigureContext() if os.path.exists(CONFIG_CACHE): fid = open(CONFIG_CACHE) try: ctx.cache = load(fid) finally: fid.close() if os.path.exists(BUILD_CONFIG): fid = myopen(BUILD_CONFIG, "rb") try: load_tools(ctx, fid) finally: fid.close() if os.path.exists(DEFAULT_ENV): env = Environment() env.load(DEFAULT_ENV) else: env = Environment() if not env.has_key("BLDDIR"): env["BLDDIR"] = BUILD_DIR # FIXME: nothing to do here env["VERBOSE"] = False if "-v" in sys.argv: env["VERBOSE"] = True ctx.env = env ctx.log = myopen(os.path.join(env["BLDDIR"], "config.log"), "w") return ctx
class BuildContext(object): def __init__(self): self.env = Environment() self.tools = [] self.cache = {} self.builders = {} self.tasks = [] def load(self): self.env = Environment() if os.path.exists(DEFAULT_ENV): self.env.load(DEFAULT_ENV) f = open(BUILD_CONFIG) try: load_tools(self, f) finally: f.close() if os.path.exists(BUILD_CACHE): fid = open(BUILD_CACHE, "rb") try: self.cache = load(fid) finally: fid.close() else: self.cache = {} srcnode, bldnode = create_top_nodes( os.path.abspath(os.getcwd()), os.path.abspath(self.env["BLDDIR"])) self.src_root = srcnode self.bld_root = bldnode fid = open(HOOK_DUMP, "rb") try: data = load(fid) yaku.task_manager.RULES_REGISTRY = data["extensions"] yaku.task_manager.FILES_REGISTRY = _hook_path_to_hook_id(srcnode, data["files"]) finally: fid.close() def store(self): # Use rename to avoid corrupting the cache if interrupted tmp_fid = open(BUILD_CACHE + ".tmp", "wb") try: dump(self.cache, tmp_fid) finally: tmp_fid.close() rename(BUILD_CACHE + ".tmp", BUILD_CACHE) def set_stdout_cache(self, task, stdout): pass def set_cmd_cache(self, task, stdout): pass
class BuildContext(object): def __init__(self): self.env = {} self.tools = [] self.cache = {} self.builders = {} self.tasks = [] def load(self): self.env = Environment() if os.path.exists(DEFAULT_ENV): self.env.load(DEFAULT_ENV) f = open(BUILD_CONFIG) try: load_tools(self, f) finally: f.close() if os.path.exists(BUILD_CACHE): fid = open(BUILD_CACHE, "rb") try: self.cache = load(fid) finally: fid.close() else: self.cache = {} def store(self): # Use rename to avoid corrupting the cache if interrupted tmp_fid = open(BUILD_CACHE + ".tmp", "w") try: dump(self.cache, tmp_fid) finally: tmp_fid.close() try: os.unlink(BUILD_CACHE) except OSError: pass os.rename(BUILD_CACHE + ".tmp", BUILD_CACHE)
class BuildContext(object): def __init__(self): self.env = Environment() self.tools = [] self.cache = {} self.builders = {} self.tasks = [] def load(self, src_path=None, build_path="build"): if src_path is None: src_path = os.getcwd() src_path = os.path.abspath(src_path) build_path = os.path.abspath(os.path.join(os.getcwd(), build_path)) if not os.path.exists(build_path): raise IOError("%s not found (did you use different build_path for configure and build contexts ?)" \ % build_path) srcnode, bldnode = create_top_nodes(src_path, build_path) self.src_root = srcnode self.bld_root = bldnode self.path = srcnode self.env = Environment() default_env = bldnode.find_node(DEFAULT_ENV) if default_env: self.env.load(default_env.abspath()) if not os.path.abspath(self.env["BLDDIR"]) == bldnode.abspath(): raise ValueError("Gne ?") build_config = bldnode.find_node(BUILD_CONFIG) if build_config is None: raise IOError("Did not find %r in %r" % (BUILD_CONFIG, bldnode.abspath())) else: f = open(build_config.abspath()) try: load_tools(self, f) finally: f.close() build_cache = bldnode.find_node(BUILD_CACHE) if build_cache is not None: fid = open(build_cache.abspath(), "rb") try: self.cache = load(fid) finally: fid.close() else: self.cache = {} hook_dump = bldnode.find_node(HOOK_DUMP) fid = open(hook_dump.abspath(), "rb") try: data = load(fid) yaku.task_manager.RULES_REGISTRY = data["extensions"] yaku.task_manager.FILES_REGISTRY = _hook_path_to_hook_id(srcnode, data["files"]) finally: fid.close() def store(self): build_cache = self.bld_root.make_node(BUILD_CACHE) tmp_fid = open(build_cache.abspath() + ".tmp", "wb") try: dump(self.cache, tmp_fid) finally: tmp_fid.close() rename(build_cache.abspath() + ".tmp", build_cache.abspath()) def set_stdout_cache(self, task, stdout): pass def set_cmd_cache(self, task, stdout): pass
class BuildContext(object): def __init__(self): self.env = Environment() self.tools = [] self.cache = {} self.builders = {} self.tasks = [] def load(self, src_path=None, build_path="build"): if src_path is None: src_path = os.getcwd() src_path = os.path.abspath(src_path) build_path = os.path.abspath(os.path.join(os.getcwd(), build_path)) if not os.path.exists(build_path): raise IOError("%s not found (did you use different build_path for configure and build contexts ?)" \ % build_path) srcnode, bldnode = create_top_nodes(src_path, build_path) self.src_root = srcnode self.bld_root = bldnode self.path = srcnode self.env = Environment() default_env = bldnode.find_node(DEFAULT_ENV) if default_env: self.env.load(default_env.abspath()) if not os.path.abspath(self.env["BLDDIR"]) == bldnode.abspath(): raise ValueError("Gne ?") build_config = bldnode.find_node(BUILD_CONFIG) if build_config is None: raise IOError("Did not find %r in %r" % (BUILD_CONFIG, bldnode.abspath())) else: f = open(build_config.abspath()) try: load_tools(self, f) finally: f.close() build_cache = bldnode.find_node(BUILD_CACHE) if build_cache is not None: fid = open(build_cache.abspath(), "rb") try: self.cache = load(fid) finally: fid.close() else: self.cache = {} hook_dump = bldnode.find_node(HOOK_DUMP) fid = open(hook_dump.abspath(), "rb") try: data = load(fid) yaku.task_manager.RULES_REGISTRY = data["extensions"] yaku.task_manager.FILES_REGISTRY = _hook_path_to_hook_id( srcnode, data["files"]) finally: fid.close() def store(self): build_cache = self.bld_root.make_node(BUILD_CACHE) tmp_fid = open(build_cache.abspath() + ".tmp", "wb") try: dump(self.cache, tmp_fid) finally: tmp_fid.close() rename(build_cache.abspath() + ".tmp", build_cache.abspath()) def set_stdout_cache(self, task, stdout): pass def set_cmd_cache(self, task, stdout): pass