예제 #1
0
파일: linux.py 프로젝트: raffber/capnqml
import wasp
from wasp import shell, tool, Directory, ctx, log, FlagOption, node, group, find, collect, StringOption
from wasp import osinfo, directory, Task, TaskFailedError, Argument, value, CommandFailedError, quote
from wasp import file, copy
import re
from waspscripts.common import get_includes

cpp = tool('cpp')
qt = tool('qt')


DEFAULT_PREFIX = '/usr'
PY_EXT_MODULE_NAME = 'pycapnqml.so'
LIBCAPNQML_NAME = 'libcapnqml.so'
ZMQLAUNCHER_NAME = 'capnqml-zmqlauncher'


@wasp.options
def options(opt):
    opt.add(StringOption('destdir', 'Sets the installation prefix directory.'))


@wasp.configure
def configure():
    debug = value('debug', False)
    yield cpp.find_cxx(debug=debug)

    inc = get_includes()
    inc.append('/usr/include')
    cli = cpp.CompilerCli(cpp.DEFAULT_COMPILER)
    cflags = [cli.position_independent_code, '-DPIC', '-pthread', cli.enable_exceptions, '-std=gnu++14']
예제 #2
0
파일: qt.py 프로젝트: raffber/capnqml
import re
from wasp import nodes, shell, group, file, tool, Task, Argument, osinfo, directory, options
from wasp import StringOption
from wasp.fs import FindTask

_cpp = tool('cpp')


@options
def inject_options(opt):
    opt.add(StringOption('qt-lib-dir', description='Directory containing Qt libraries.'))
    opt.add(StringOption('qt-include-dir', description='Directory containing Qt include files.'))
    opt.add(StringOption('qt-bin-dir', description='Directory containing Qt binaries such as the MOC.'))
    opt.add(StringOption('qt-base-dir', description='Base directory for Qt (installation directory on Windows)'))


class FindMoc(FindTask):

    def __init__(self, mocpath=None, dirs=None):
        if mocpath is None:
            self._mocpath = None
            if osinfo.linux:
                name = 'moc-qt5'
            else:
                name = 'moc.exe'
            super().__init__(name, argprefix='moc', dirs=dirs)
        else:
            assert isinstance(mocpath, str)
            self._mocpath = mocpath
            super().__init__(argprefix='moc')
예제 #3
0
파일: build.py 프로젝트: raffber/capnqml
from wasp import shell, tool, Directory, ctx, log, FlagOption, node, group, find, collect, StringOption
from wasp import osinfo, directory, Task, TaskFailedError, Argument, value, CommandFailedError, quote
from wasp import chain
import wasp


if osinfo.windows:
    from waspscripts.windows import compile_schema, PY_EXT_MODULE_NAME, LIBCAPNQML_NAME, ZMQLAUNCHER_NAME
elif osinfo.linux:
    from waspscripts.linux import compile_schema, PY_EXT_MODULE_NAME, LIBCAPNQML_NAME, ZMQLAUNCHER_NAME


cpp = tool('cpp')
qt = tool('qt')
sphinx = tool('sphinx')
clang = tool('clang')


@wasp.options
def options(opt):
    opt.add(FlagOption('debug', 'Enable building with debug symbols.'))
    opt.group('lint').add(FlagOption('fix', 'Fix clang-tidy suggestions'))


def py_ext_module_name():
    return ctx.builddir.join('python').join(PY_EXT_MODULE_NAME)


def libcapnqml_name():
    return ctx.builddir.join(LIBCAPNQML_NAME)
예제 #4
0
파일: build.py 프로젝트: raffber/wasp
import os
import zlib
import binascii
from wasp.util import first
from wasp import shell, tool, ctx, recurse
from wasp.ext.watch import watch
import wasp
from wasp.fs import find_exe, Directory, files
from wasp.task import TaskFailedError

sphinx = tool("sphinx")

recurse("buildtest")


@wasp.command("doc", description="Build project documentation.")
def doc():
    return sphinx.html("doc")


@watch(dirs=["doc", "src/wasp"], regexp="^[a-z-_]*\.(rst|py)$", command="watch-doc")
def autorebuild_doc():
    return doc()


@wasp.command("test", description="Run unit and integration tests.")
def test():
    yield find_exe("py.test", argprefix="pytest").produce(":pytest")
    yield shell("{pytest} tests").use(":pytest")