Exemplo n.º 1
0
Arquivo: cmake.py Projeto: gidden/fief
def build_a(ctx):
  pkg = ctx['pkg']
  assert any([ctx['interface', ifc] == pkg for ifc in interfaces])
  psrc = yield async.WaitFor(repo.fetch_nomemo_a(ctx, pkg))
  env = yield async.WaitFor(repo.realize_deps_a(ctx, interfaces))

  try:
    src, cleanup = yield async.WaitFor(repo.stage_nomemo_a(ctx, pkg))
  
    to = yield async.WaitFor(ctx.outfile_a('build', pkg))
    to = os.path.abspath(to)
    os.mkdir(to)

    cmdkws = {'cwd': src, 'tag': pkg, 'env': env}
    c = Cmd(ctx, **cmdkws)
    bootstrap = ('bash', 'bootstrap') if os.name == 'nt' else './bootstrap'
    c.lit(bootstrap, '--prefix=' + to)
    yield async.WaitFor(c.exec_a())

    c = Cmd(ctx, **cmdkws)
    c.lit(conf.make)
    yield async.WaitFor(c.exec_a())

    c = Cmd(ctx, **cmdkws)
    c.lit(conf.make_install)
    yield async.WaitFor(c.exec_a())
  finally:
    cleanup()

  delivs = {'root': to, 'libs': set('z'), 'pkg': pkg}
  yield async.Result(delivs)
Exemplo n.º 2
0
Arquivo: sympy.py Projeto: gidden/fief
def build_a(ctx):
    pkg = ctx['pkg']
    cythonize = (ctx['interface', 'sympy-cython'] == pkg)
    psrc = yield async.WaitFor(repo.fetch_nomemo_a(ctx, pkg))
    env = yield async.WaitFor(repo.realize_deps_a(ctx, interfaces))

    try:
        src, cleanup = yield async.WaitFor(repo.stage_nomemo_a(ctx, pkg))
        cmdkws = {'cwd': src, 'tag': pkg, 'env': env}
        to = yield async.WaitFor(ctx.outfile_a('build', pkg))
        to = os.path.abspath(to)
        os.mkdir(to)

        c = bake.Cmd(ctx, **cmdkws)
        c.lit('python', 'setup.py', 'install', '--prefix=' + to)
        yield async.WaitFor(c.exec_a())

        if cythonize:
            c = bake.Cmd(ctx, **cmdkws)
            c.lit('python', 'build.py', 'install', '--prefix=' + to)
            yield async.WaitFor(c.exec_a())
    finally:
        cleanup()
  
    delivs = {'root': to, 'pkg': pkg}
    yield async.Result(delivs)
Exemplo n.º 3
0
def build_a(ctx):
  pkg = ctx['pkg']
  assert any([ctx['interface', ifc] == pkg for ifc in interfaces])
  psrc = yield async.WaitFor(repo.fetch_nomemo_a(ctx, pkg))
  env = yield async.WaitFor(repo.realize_deps_a(ctx, interfaces))

  try:
    src, cleanup = yield async.WaitFor(repo.stage_nomemo_a(ctx, pkg))
    srcbld = os.path.join(src, 'build')
    os.mkdir(srcbld)
    cmdkws = {'cwd': srcbld, 'tag': pkg, 'env': env}
    to = yield async.WaitFor(ctx.outfile_a('build', pkg))
    to = os.path.abspath(to)
    os.mkdir(to)

    c = Cmd(ctx, **cmdkws)
    c.lit('cmake', '-DCMAKE_INSTALL_PREFIX:PATH=' + to, 
          '-DLAPACKE:BOOL=ON', '-DBUILD_SHARED_LIBS:BOOL=ON', '..')
    yield async.WaitFor(c.exec_a())

    c = Cmd(ctx, **cmdkws)
    c.lit(conf.make)
    yield async.WaitFor(c.exec_a())

    c = Cmd(ctx, **cmdkws)
    c.lit(conf.make_install)
    yield async.WaitFor(c.exec_a())
  finally:
    cleanup()

  delivs = {'root': to, 'libs': set('z'), 'pkg': pkg}
  yield async.Result(delivs)
Exemplo n.º 4
0
Arquivo: hdf5.py Projeto: gidden/fief
def build_a(ctx):
    pkg = ctx["pkg"]
    assert any([ctx["interface", ifc] == pkg for ifc in interfaces])
    cpp = ctx["interface", "hdf5-cpp"] == pkg
    parl = ctx["interface", "hdf5-parallel"] == pkg
    psrc = yield async.WaitFor(repo.fetch_nomemo_a(ctx, pkg))
    env = yield async.WaitFor(repo.realize_deps_a(ctx, interfaces))

    try:
        src, cleanup = yield async.WaitFor(repo.stage_nomemo_a(ctx, pkg))
        cmdkws = {"cwd": src, "tag": pkg, "env": env}
        to = yield async.WaitFor(ctx.outfile_a("build", pkg))
        to = os.path.abspath(to)
        os.mkdir(to)

        if os.name == "nt":
            srcbld = os.path.join(src, "build")
            os.mkdir(srcbld)
            cmdkws["cwd"] = srcbld
            c = Cmd(ctx, **cmdkws)
            c.lit(
                "cmake",
                "-C",
                "../config/cmake/cacheinit.cmake",
                "-G",
                "MSYS Makefiles",
                "-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF",
                "-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON",
                "-DCMAKE_INSTALL_PREFIX:PATH=" + to,
            )
            if parl:
                c.lit("-DHDF5_ENABLE_PARALLEL:BOOL=ON")
            c.lit("..")
            yield async.WaitFor(c.exec_a())
        else:
            c = Cmd(ctx, **cmdkws)
            c.lit("./configure", "--prefix=" + to)
            if parl:
                c.lit("--enable-parallel")
            yield async.WaitFor(c.exec_a())

        c = Cmd(ctx, **cmdkws)
        c.lit(conf.make)
        yield async.WaitFor(c.exec_a())

        c = Cmd(ctx, **cmdkws)
        c.lit(conf.make_install)
        yield async.WaitFor(c.exec_a())
    finally:
        cleanup()

    libs = set(("hdf5", "hdf5_hl"))
    if cpp:
        libs |= set(("hdf5_cpp", "hdf5_hl_cpp"))
    delivs = {"root": to, "libs": libs, "pkg": pkg}
    yield async.Result(delivs)
Exemplo n.º 5
0
Arquivo: zlib.py Projeto: gidden/fief
def build_a(ctx):
  pkg = ctx['pkg']
  assert any([ctx['interface', ifc] == pkg for ifc in interfaces])
  psrc = yield async.WaitFor(repo.fetch_nomemo_a(ctx, pkg))
  env = yield async.WaitFor(repo.realize_deps_a(ctx, interfaces))

  try:
    src, cleanup = yield async.WaitFor(repo.stage_nomemo_a(ctx, pkg))
  
    to = yield async.WaitFor(ctx.outfile_a('build', pkg))
    to = os.path.abspath(to)
    os.mkdir(to)

    cmdkws = {'cwd': src, 'tag': pkg, 'env': env}
    if os.name == 'nt':
      c = Cmd(ctx, **cmdkws)
      c.lit(conf.make, '-f', 'win32/Makefile.gcc')
      yield async.WaitFor(c.exec_a())

      # NOTE: not BINARY_PATH != 'bin' to replicate unix install behaviour
      cmdkws['env']['BINARY_PATH'] = os.path.join(to, 'lib')
      cmdkws['env']['INCLUDE_PATH'] = os.path.join(to, 'include')
      cmdkws['env']['LIBRARY_PATH'] = os.path.join(to, 'lib')
      c = Cmd(ctx, **cmdkws)
      c.lit(conf.make_install, '-f', 'win32/Makefile.gcc', 'SHARED_MODE=1')
      yield async.WaitFor(c.exec_a())
      shutil.copy(os.path.join(to, 'lib', 'zlib1.dll'), 
                  os.path.join(to, 'lib', 'libz.dll'))
    else:
      c = Cmd(ctx, **cmdkws)
      c.lit('./configure', '--prefix=' + to)
      yield async.WaitFor(c.exec_a())

      c = Cmd(ctx, **cmdkws)
      c.lit(conf.make)
      yield async.WaitFor(c.exec_a())

      c = Cmd(ctx, **cmdkws)
      c.lit(conf.make_install)
      yield async.WaitFor(c.exec_a())
  finally:
    cleanup()

  delivs = {'root': to, 'libs': set('z'), 'pkg': pkg}
  yield async.Result(delivs)
Exemplo n.º 6
0
Arquivo: numpy.py Projeto: gidden/fief
import os
from fief import repo
from fief.repo import ifc, async, bake

interfaces = {'numpy': ifc(requires=('atlas', 'py')}

def build_a(ctx):
    pkg = ctx['pkg']
    env = yield async.WaitFor(repo.realize_deps_a(ctx, interfaces))
    src, cleanup = yield async.WaitFor(repo.stage_nomemo_a(ctx, pkg))
  
    to = yield async.WaitFor(ctx.outfile_a('build'))
    to = os.path.abspath(to)
    os.mkdir(to)
  
    c = bake.Cmd(ctx)
    c.cwd = src
    c.env = env
    c.lit('python', 'setup.py', 'install', '--prefix=' + to)
    yield async.WaitFor(c.exec_a())
  
    cleanup()

    delivs = {'root': to, 'pkg': pkg}
    yield async.Result(delivs)