def ConvertArgsToFile(args): fd, outfile = tempfile.mkstemp() # Remember to delete this file afterwards. TempFiles.add(outfile) cmd = args[0] other_args = args[1:] os.write(fd, ' '.join(other_args)) os.close(fd) return [cmd, '@' + outfile]
def TempNameForInput(self, input, imtype): fullpath = pathtools.abspath(input) # If input is already a temporary name, just change the extension if fullpath.startswith(self.TempBase): temp = self.TempBase + '.' + imtype else: # Source file temp = self.TempMap[fullpath] + '.' + imtype if not env.getbool('SAVE_TEMPS'): TempFiles.add(temp) return temp
def RunLLC(infile, outfile, filetype): env.push() env.setmany(input=infile, output=outfile, filetype=filetype) if env.getbool('SANDBOXED'): is_shared, soname, needed = RunLLCSandboxed() env.pop() # soname and dt_needed libs are returned from LLC and passed to LD driver_tools.SetBitcodeMetadata(infile, is_shared, soname, needed) else: driver_tools.Run("${RUN_LLC}") # As a side effect, this creates a temporary file if not env.getbool('SAVE_TEMPS'): TempFiles.add(outfile + '.meta') env.pop() return 0
def TempNameForOutput(self, imtype): temp = self.TempBase + '.' + imtype if not env.getbool('SAVE_TEMPS'): TempFiles.add(temp) return temp