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']
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')
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)
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")