def enlarge(self): super(MakeCaller, self).enlarge() if len(self.__requested_calls) == 0: return for filename, args in self.__requested_calls: external_cmd.exec_program( program='make', dir=self.parentbuilder().directory().abspath(), args=['-f', filename] + args) pass # make might have had side effects that we don't see scan.rescan_dir(self.parentbuilder().directory()) # just in case it had, we tell the machinery to initiate # another round to have them recognized # eventually. performancewise, we could see if the directory # state changed, and only then reiterate. on the other, we can # never know what Makefile writers think and do, and they # could generate files in other directories than the current. self.force_enlarge() self.__requested_calls = [] pass
def make(builddir, args=None, env=None): if args is None: the_args = [] else: the_args = args pass external_cmd.exec_program(program='make', dir=builddir, args=the_args, env=env) pass
def CALL_MAKE_AND_RESCAN_SYNC(self, filename='Makefile', args=[]): """ Call make immediately, and rescan the directory. This is done synchronously, so that the caller can be sure that make has been called when the function returns. """ cwd = self.__caller.parentbuilder().directory() external_cmd.exec_program(program='make', dir=cwd.abspath(), args=['-f', filename] + args) pass # make might have had side effects that we want to see scan.rescan_dir(cwd) pass
def cmake(packageroot, builddir, args=None, prefix=None, path=None): cmake_prog = external_cmd.search_program('cmake', path) if cmake_prog is None: raise Error('cmake not found along path') the_args = [] if args is not None: the_args.extend(args) pass if prefix is not None: assert type(prefix) in (list, tuple) the_args.append('-DCMAKE_INSTALL_PREFIX='+'/'.join(prefix)) pass the_args.append(os.sep.join(packageroot)) external_cmd.exec_program( program=cmake_prog, dir=os.path.join(builddir), args=the_args, path=path, print_cmdline=True) pass
def configure(packageroot, builddir, prefix, readonly_prefixes=None, args=None, env=None): assert type(packageroot) in [types.ListType, types.TupleType] assert type(builddir) in [types.ListType, types.TupleType] assert type(prefix) in [types.NoneType, types.ListType, types.TupleType] assert type(readonly_prefixes) in [ types.NoneType, types.ListType, types.TupleType ] argv = [] if prefix is not None: argv.append('--prefix=' + os.sep.join(prefix)) pass if readonly_prefixes is not None: ro_args = [] for rp in readonly_prefixes: assert type(rp) in [types.ListType, types.TupleType], rp ro_args.append(os.sep.join(rp)) pass if len(ro_args): argv.append('--with-readonly-prefixes=' + ','.join(ro_args)) pass pass if args is not None: argv.extend(args) pass external_cmd.exec_program(program=os.sep.join(packageroot + ['configure']), args=argv, env=env, dir=builddir, print_cmdline=True) pass
def make(builddir, args, env=None): external_cmd.exec_program(program='make', dir=builddir, args=args, env=env) pass