コード例 #1
0
ファイル: caller.py プロジェクト: ssi-schaefer/confix
    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
コード例 #2
0
ファイル: commands.py プロジェクト: ssi-schaefer/confix
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
コード例 #3
0
    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
コード例 #4
0
ファイル: commands.py プロジェクト: ssi-schaefer/confix
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
コード例 #5
0
ファイル: configure.py プロジェクト: ssi-schaefer/confix
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
コード例 #6
0
def make(builddir, args, env=None):
    external_cmd.exec_program(program='make', dir=builddir, args=args, env=env)
    pass