def try_task_maker(conf, task_maker, name, body, headers, env=None): if headers: head = "\n".join(["#include <%s>" % h for h in headers]) else: head = "" code = "\n".join([c for c in [head, body]]) sources = [create_file(conf, code, name, ".c")] task_gen = CompiledTaskGen("conf", conf, sources, name) task_gen.env.update(copy.deepcopy(conf.env)) task_gen.env = _merge_env(task_gen.env, env) task_gen.env.prepend("LIBDIR", conf.path.declare(".").abspath()) tasks = task_maker(task_gen, name) conf.last_task = tasks[-1] for t in tasks: t.disable_output = True t.log = conf.log succeed = False explanation = None try: try: run_tasks(conf, tasks) succeed = True except TaskRunFailure: e = get_exception() explanation = str(e) #raise finally: write_log(conf, conf.log, tasks, code, succeed, explanation) return succeed
def try_task_maker(conf, task_maker, name, body, headers, env=None): if headers: head = "\n".join(["#include <%s>" % h for h in headers]) else: head = "" code = "\n".join([c for c in [head, body]]) sources = [create_file(conf, code, name, ".c")] task_gen = CompiledTaskGen("conf", conf, sources, name) task_gen.env.update(copy.deepcopy(conf.env)) task_gen.env = _merge_env(task_gen.env, env) task_gen.env.prepend("LIBDIR", os.curdir) tasks = task_maker(task_gen, name) conf.last_task = tasks[-1] for t in tasks: t.disable_output = True t.log = conf.log succeed = False explanation = None try: run_tasks(conf, tasks) succeed = True except TaskRunFailure, e: explanation = str(e)
def _try_task_maker(self, task_maker, name, body): conf = self.ctx code = body sources = [create_file(conf, code, name, ".f")] task_gen = CompiledTaskGen("conf", conf, sources, name) task_gen.env.update(copy.deepcopy(conf.env)) tasks = task_maker(task_gen, name) self.ctx.last_task = tasks[-1] for t in tasks: t.disable_output = True t.log = conf.log succeed = False explanation = None try: run_tasks(conf, tasks) succeed = True except TaskRunFailure: e = get_exception() explanation = str(e) write_log(conf, conf.log, tasks, code, succeed, explanation) return succeed
def _create_fbinary_conf_taskgen(conf, name, body, builder): # FIXME: refactor commonalities between configuration taskgens code = body sources = [create_file(conf, code, name, ".f")] task_gen = CompiledTaskGen("conf", conf, sources, name) task_gen.env.update(copy.deepcopy(conf.env)) tasks = task_gen.process() link_task = builder(task_gen, name) t = link_task[0] exec_command = t.exec_command if sys.version_info >= (3,): t.exec_command = types.MethodType(logged_exec, t) else: t.exec_command = types.MethodType(logged_exec, t, t.__class__) tasks.extend(link_task) conf.last_task = tasks[-1] for t in tasks: t.disable_output = True t.log = conf.log succeed = False explanation = None try: run_tasks(conf, tasks) succeed = True except TaskRunFailure, e: explanation = str(e)