예제 #1
0
파일: __init__.py 프로젝트: adnelson/felix
def copy_to(ctx, dstdir, srcs:fbuild.db.SRCS) -> fbuild.db.DSTS:
    dstdir.makedirs()

    dsts = []

    for src in srcs:
        src = Path(src)
        dst = dstdir / src.name
        ctx.logger.check(' * copy', '%s -> %s' % (src, dst), color='yellow')
        src.copy(dst)
        dsts.append(dst)

    return dsts
예제 #2
0
파일: __init__.py 프로젝트: refi64/felix
def copy_to(ctx, dstdir, srcs:fbuild.db.SRCS) -> fbuild.db.DSTS:
    dstdir.makedirs()

    dsts = []

    for src in srcs:
        src = Path(src)
        dst = dstdir / src.name
        ctx.logger.check(' * copy', '%s -> %s' % (src, dst), color='yellow')
        try:
            src.copy(dst)
        except shutil.SameFileError:
            pass
        dsts.append(dst)

    return dsts
예제 #3
0
파일: __init__.py 프로젝트: DawidvC/felix
def copy_to(ctx, dstdir, srcs:fbuild.db.SRCS) -> fbuild.db.DSTS:
    #print("__init__.copy_to, srcs="+str(srcs)+", dst=" + str(dstdir))
    dstdir.makedirs()

    dsts = []

    for src in srcs:
        src = Path(src)
        dst = dstdir / src.name
        #ctx.logger.check(' * copy', '%s -> %s' % (src, dst), color='yellow')
        try:
            src.copy(dst)
        except shutil.SameFileError:
            pass
        dsts.append(dst)

    return dsts
예제 #4
0
    def uncached_compile(self,
                         src,
                         *,
                         static=None,
                         includes=[],
                         flags=[],
                         buildroot=None,
                         **kwargs):
        """Compile a felix file without caching the results.  This is needed
        when compiling temporary files."""
        print("Uncached compile " + src)
        src = Path(src)
        buildroot = buildroot or self.ctx.buildroot
        src_buildroot = src.addroot(buildroot)

        if static is None:
            static = self.static

        if static:
            dst = src_buildroot.replaceext(self.exe_suffix)
        else:
            dst = src_buildroot.replaceext(self.lib_suffix)

        if src != src_buildroot:
            src_buildroot.parent.makedirs()
            src.copy(src_buildroot)
            src = src_buildroot

        includes = set(includes)
        includes.update(self.includes)
        includes.add(src.parent)

        cmd_flags = ['-c']
        cmd_flags.extend(self.flags)
        cmd_flags.extend(flags)

        self.flx(src,
                 self.flx,
                 '%s -> %s' % (src, dst),
                 includes=includes,
                 static=static,
                 flags=cmd_flags,
                 color='compile',
                 **kwargs)

        return dst
예제 #5
0
def copy_to(ctx, dstdir, srcs: fbuild.db.SRCS) -> fbuild.db.DSTS:
    #print("__init__.copy_to, srcs="+str(srcs)+", dst=" + str(dstdir))
    dstdir.makedirs()

    dsts = []

    print("copying " + str(len(srcs)) + " files")
    for src in srcs:
        src = Path(src)
        dst = dstdir / src.name
        #ctx.logger.check(' * copy', '%s -> %s' % (src, dst), color='yellow')
        try:
            print("cp " + src + " -> " + dst)
            src.copy(dst)
        except shutil.SameFileError:
            pass
        dsts.append(dst)

    return dsts
예제 #6
0
파일: felix.py 프로젝트: alexkross/felix
    def uncached_compile(self, src, *,
            static=None,
            includes=[],
            flags=[],
            buildroot=None,
            **kwargs):
        """Compile a felix file without caching the results.  This is needed
        when compiling temporary files."""
        print("Uncached compile " + src)
        src = Path(src)
        buildroot = buildroot or self.ctx.buildroot
        src_buildroot = src.addroot(buildroot)

        if static is None:
            static = self.static

        if static:
            dst = src_buildroot.replaceext(self.exe_suffix)
        else:
            dst = src_buildroot.replaceext(self.lib_suffix)

        if src != src_buildroot:
            src_buildroot.parent.makedirs()
            src.copy(src_buildroot)
            src = src_buildroot

        includes = set(includes)
        includes.update(self.includes)
        includes.add(src.parent)

        cmd_flags = ['-c']
        cmd_flags.extend(self.flags)
        cmd_flags.extend(flags)

        self.flx(src, self.flx, '%s -> %s' % (src, dst),
            includes=includes,
            static=static,
            flags=cmd_flags,
            color='compile',
            **kwargs)

        return dst
예제 #7
0
파일: scala.py 프로젝트: rjeschmi/fbuild
    def __call__(self, src, *args, flags=[], buildroot=None, **kwargs):
        """Run a scala script."""

        src = Path(src)
        buildroot = buildroot or self.ctx.buildroot
        src_buildroot = src.addroot(buildroot)
        dst = src.replaceext('.jar')

        # We need to copy the src into the buildroot so we don't pollute our
        # tree.
        if src != src_buildroot:
            src_buildroot.parent.makedirs()
            src.copy(src_buildroot)
            src = src_buildroot

        # Always save the compilation results.
        flags = list(flags)
        flags.append('-savecompiled')

        stdout, stderr = self._run([src], *args, flags=flags, **kwargs)
        return dst, stdout, stderr