def doCompile(self, message): task_folder = message['task_folder'] task_data = message['task_data'] cc_type = task_data['type'] argv = task_data['argv'] with util.FolderChanger(task_folder): p, out, err = util.Execute(argv) if cc_type == 'gcc': err, deps = util.ParseGCCDeps(err) elif cc_type == 'msvc': out, deps = util.ParseMSVCDeps(self.vars, out) elif cc_type == 'sun': err, deps = util.ParseSunDeps(err) elif cc_type == 'fxc': out, deps = util.ParseFXCDeps(out) else: raise Exception('unknown compiler type') paths = self.rewriteDeps(deps) reply = { 'ok': p.returncode == 0, 'cmdline': self.task_argv_debug(message), 'stdout': out, 'stderr': err, 'deps': paths, } return reply
def parseDependencies(self, tools_env, out, err, dep_type, dep_info): if dep_type == 'md': with open(dep_info) as fp: deps = make_parser.ParseDependencyFile(dep_info, fp) elif dep_type == 'gcc': err, deps = util.ParseGCCDeps(err) elif dep_type == 'msvc': inclusion_pattern = GetMsvcInclusionPattern(self.vars, tools_env) out, deps = util.ParseMSVCDeps(out, inclusion_pattern) elif dep_type == 'fxc': out, deps = util.ParseFXCDeps(out) else: raise Exception('unknown dependency type') paths = self.rewriteDeps(deps) return out, err, paths
def doCompile(self, message): task_folder = message['task_folder'] task_data = message['task_data'] tools_env = message['task_tools_env'] cc_type = task_data['type'] argv = task_data['argv'] env = None if tools_env is not None: if tools_env.env_cmds is not None: env = util.BuildEnv(tools_env.env_cmds) if 'cl' in tools_env.tools: argv[0] = tools_env.tools['cl'] with util.FolderChanger(task_folder): p, out, err = util.Execute(argv, env=env) if cc_type == 'gcc': err, deps = util.ParseGCCDeps(err) elif cc_type == 'msvc': inclusion_pattern = GetMsvcInclusionPattern( self.vars, tools_env) out, deps = util.ParseMSVCDeps(out, inclusion_pattern) elif cc_type == 'sun': err, deps = util.ParseSunDeps(err) elif cc_type == 'fxc': out, deps = util.ParseFXCDeps(out) else: raise Exception('unknown compiler type') paths = self.rewriteDeps(deps) reply = { 'ok': p.returncode == 0, 'cmdline': self.task_argv_debug(message), 'stdout': out, 'stderr': err, 'deps': paths, } return reply