vala

At this point, vala is still unstable, so do not expect this tool to be too stable either (apis, etc)

waflib.Tools.vala.vala_file(self, node)[source]

Compile a vala file and bind the task to self.valatask. If an existing vala task is already set, add the node to its inputs. The typical example is:

def build(bld):
        bld.program(
                packages      = 'gtk+-2.0',
                target        = 'vala-gtk-example',
                uselib        = 'GTK GLIB',
                source        = 'vala-gtk-example.vala foo.vala',
                vala_defines  = ['DEBUG']
                # the following arguments are for libraries
                #gir          = 'hello-1.0',
                #gir_path     = '/tmp',
                #vapi_path = '/tmp',
                #pkg_name = 'hello'
                # disable installing of gir, vapi and header
                #install_binding = False
        )
Parameters:node (waflib.Node.Node) – vala file
class waflib.Tools.vala.valac(*k, **kw)[source]

Bases: waflib.Task.Task

Task to compile vala files.

vars = ['VALAC', 'VALAC_VERSION', 'VALAFLAGS']
ext_out = ['.h']
__doc__ = '\n\tTask to compile vala files.\n\t'
__module__ = 'waflib.Tools.vala'
hcode = "\tdef run(self):\n\t\tenv = self.env\n\n\t\tcmd = [env['VALAC'], '-C', '--quiet']\n\t\tcmd.extend(Utils.to_list(env['VALAFLAGS']))\n\n\t\tif self.threading:\n\t\t\tcmd.append('--thread')\n\n\t\tif self.profile:\n\t\t\tcmd.append('--profile=%s' % self.profile)\n\n\t\tif self.target_glib:\n\t\t\tcmd.append('--target-glib=%s' % self.target_glib)\n\n\t\tif self.is_lib:\n\t\t\tcmd.append('--library=' + self.target)\n\t\t\tfor x in self.outputs:\n\t\t\t\tif x.name.endswith('.h'):\n\t\t\t\t\tcmd.append('--header=' + x.name)\n\t\t\tif self.gir:\n\t\t\t\tcmd.append('--gir=%s.gir' % self.gir)\n\n\t\tfor vapi_dir in self.vapi_dirs:\n\t\t\tcmd.append('--vapidir=%s' % vapi_dir)\n\n\t\tfor package in self.packages:\n\t\t\tcmd.append('--pkg=%s' % package)\n\n\t\tfor package in self.packages_private:\n\t\t\tcmd.append('--pkg=%s' % package)\n\n\t\tfor define in self.vala_defines:\n\t\t\tcmd.append('--define=%s' % define)\n\n\t\tcmd.extend([a.abspath() for a in self.inputs])\n\t\tret = self.exec_command(cmd, cwd=self.outputs[0].parent.abspath())\n\n\t\tif ret:\n\t\t\treturn ret\n\n\t\tfor x in self.outputs:\n\t\t\tif id(x.parent) != id(self.outputs[0].parent):\n\t\t\t\tshutil.move(self.outputs[0].parent.abspath() + os.sep + x.name, x.abspath())\n\n\t\tif self.packages and getattr(self, 'deps_node', None):\n\t\t\tself.deps_node.write('\\n'.join(self.packages))\n\n\t\treturn ret\n"
waflib.Tools.vala.find_valac(self, valac_name, min_version)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

Find the valac program, and execute it to store the version number in conf.env.VALAC_VERSION

Parameters:
  • valac_name (string or list of string) – program name
  • min_version (tuple of int) – minimum version acceptable
waflib.Tools.vala.check_vala(self, min_version=(0, 8, 0), branch=None)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

Check if vala compiler from a given branch exists of at least a given version.

Parameters:
  • min_version (tuple) – minimum version acceptable (0.8.0)
  • branch (tuple of int) – first part of the version number, in case a snapshot is used (0, 8)
waflib.Tools.vala.check_vala_deps(self)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

Load the gobject and gthread packages if they are missing.

waflib.Tools.vala.configure(self)[source]

Use the following to enforce minimum vala version:

def configure(conf):
conf.load(‘vala’, funs=’‘) conf.check_vala(min_version=(0,10,0))
waflib.Tools.vala.conf(f)

Decorator: attach new configuration functions to waflib.Build.BuildContext and waflib.Configure.ConfigurationContext. The methods bound will accept a parameter named ‘mandatory’ to disable the configuration errors:

def configure(conf):
        conf.find_program('abc', mandatory=False)
Parameters:f (function) – method to bind
waflib.Tools.vala.extension(*k)

Decorator: register a task generator method which will be invoked during the processing of source files for the extension given:

from waflib import Task
class mytask(Task):
        run_str = 'cp ${SRC} ${TGT}'
@extension('.moo')
def create_maa_file(self, node):
        self.create_task('mytask', node, node.change_ext('.maa'))
def build(bld):
        bld(source='foo.moo')
waflib.Tools.vala.options(opt)[source]

Load the waflib.Tools.gnu_dirs tool and add the --vala-target-glib command-line option

Previous topic

dbus

Next topic

glib2

This Page