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
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
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
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
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
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