glib2

Support for GLib2 tools:

  • marshal
  • enums
  • gsettings
  • gresource
waflib.Tools.glib2.add_marshal_file(self, filename, prefix)[source]

Task generator method

Add a file to the list of marshal files to process. Store them in the attribute marshal_list.

Parameters:
  • filename (string) – xml file to compile
  • prefix (string) – marshal prefix (–prefix=prefix)
waflib.Tools.glib2.process_marshal(self)[source]

Process the marshal files stored in the attribute marshal_list to create waflib.Tools.glib2.glib_genmarshal instances. Add the c file created to the list of source to process.

waflib.Tools.glib2.add_enums_from_template(self, source='', target='', template='', comments='')[source]

Task generator method

Add a file to the list of enum files to process. Store them in the attribute enums_list.

Parameters:
  • source (string) – enum file to process
  • target (string) – target file
  • template (string) – template file
  • comments (string) – comments
waflib.Tools.glib2.add_enums(self, source='', target='', file_head='', file_prod='', file_tail='', enum_prod='', value_head='', value_prod='', value_tail='', comments='')[source]

Task generator method

Add a file to the list of enum files to process. Store them in the attribute enums_list.

Parameters:
  • source (string) – enum file to process
  • target (string) – target file
  • file_head – unused
  • file_prod – unused
  • file_tail – unused
  • enum_prod – unused
  • value_head – unused
  • value_prod – unused
  • value_tail – unused
  • comments (string) – comments
waflib.Tools.glib2.process_enums(self)[source]

Process the enum files stored in the attribute enum_list to create waflib.Tools.glib2.glib_mkenums instances.

class waflib.Tools.glib2.glib_mkenums(*k, **kw)[source]

Bases: waflib.Task.Task

Process enum files

color = 'PINK'
ext_out = ['.h']
__doc__ = '\n\tProcess enum files\n\t'
__module__ = 'waflib.Tools.glib2'
hcode = '${GLIB_MKENUMS} ${GLIB_MKENUMS_OPTIONS} ${GLIB_MKENUMS_SOURCE} > ${GLIB_MKENUMS_TARGET}'
orig_run_str = '${GLIB_MKENUMS} ${GLIB_MKENUMS_OPTIONS} ${GLIB_MKENUMS_SOURCE} > ${GLIB_MKENUMS_TARGET}'
vars = ['GLIB_MKENUMS', 'GLIB_MKENUMS_OPTIONS', 'GLIB_MKENUMS_SOURCE', 'GLIB_MKENUMS_TARGET']
waflib.Tools.glib2.add_settings_schemas(self, filename_list)[source]

Task generator method

Add settings files to process, add them to settings_schema_files

Parameters:filename_list (list of string) – files
waflib.Tools.glib2.add_settings_enums(self, namespace, filename_list)[source]

Task generator method

This function may be called only once by task generator to set the enums namespace.

Parameters:
  • namespace (string) – namespace
  • filename_list (file list) – enum files to process
waflib.Tools.glib2.process_settings(self)[source]

Task generator method

Process the schema files in settings_schema_files to create waflib.Tools.glib2.glib_mkenums instances. The same files are validated through waflib.Tools.glib2.glib_validate_schema tasks.

Feature:glib2
class waflib.Tools.glib2.glib_validate_schema(*k, **kw)[source]

Bases: waflib.Task.Task

Validate schema files

color = 'PINK'
__doc__ = '\n\tValidate schema files\n\t'
__module__ = 'waflib.Tools.glib2'
hcode = 'rm -f ${GLIB_VALIDATE_SCHEMA_OUTPUT} && ${GLIB_COMPILE_SCHEMAS} --dry-run ${GLIB_COMPILE_SCHEMAS_OPTIONS} && touch ${GLIB_VALIDATE_SCHEMA_OUTPUT}'
orig_run_str = 'rm -f ${GLIB_VALIDATE_SCHEMA_OUTPUT} && ${GLIB_COMPILE_SCHEMAS} --dry-run ${GLIB_COMPILE_SCHEMAS_OPTIONS} && touch ${GLIB_VALIDATE_SCHEMA_OUTPUT}'
vars = ['GLIB_COMPILE_SCHEMAS', 'GLIB_COMPILE_SCHEMAS_OPTIONS', 'GLIB_VALIDATE_SCHEMA_OUTPUT']
waflib.Tools.glib2.process_gresource_source(self, node)[source]

Hook to process .gresource.xml to generate C source files

waflib.Tools.glib2.process_gresource_bundle(self)[source]

Task generator method

Generate a binary .gresource files from .gresource.xml files:

def build(bld):
        bld(
                features='gresource',
                source=['resources1.gresource.xml', 'resources2.gresource.xml'],
                install_path='${LIBDIR}/${PACKAGE}'
        )
Parameters:
  • source (list of string) – XML files to process
  • install_path (string) – installation path
Feature:

gresource

class waflib.Tools.glib2.glib_gresource_base(*k, **kw)[source]

Bases: waflib.Task.Task

Base class for gresource based tasks, it implements the implicit dependencies scan.

color = 'BLUE'
base_cmd = '${GLIB_COMPILE_RESOURCES} --sourcedir=${SRC[0].parent.srcpath()} --sourcedir=${SRC[0].bld_dir()}'
scan()[source]

Scan gresource dependencies through glib-compile-resources --generate-dependencies command

__doc__ = '\n\tBase class for gresource based tasks, it implements the implicit dependencies scan.\n\t'
__module__ = 'waflib.Tools.glib2'
hcode = '\tdef run(self):\n\t\t"""\n\t\tCalled by threads to execute the tasks. The default is empty and meant to be overridden in subclasses.\n\t\tIt is a bad idea to create nodes in this method (so, no node.ant_glob)\n\n\t\t:rtype: int\n\t\t"""\n\t\tif hasattr(self, \'fun\'):\n\t\t\treturn self.fun(self)\n\t\treturn 0\n'
class waflib.Tools.glib2.glib_gresource_source(*k, **kw)[source]

Bases: waflib.Tools.glib2.glib_gresource_base

Task to generate C source code (.h and .c files) from a gresource.xml file

vars = ['GLIB_COMPILE_RESOURCES']
fun_h = (<function f at 0xb5a80130>, ['GLIB_COMPILE_RESOURCES'])
fun_c = (<function f at 0xb5a801f0>, ['GLIB_COMPILE_RESOURCES'])
ext_out = ['.h']
__doc__ = '\n\tTask to generate C source code (.h and .c files) from a gresource.xml file\n\t'
__module__ = 'waflib.Tools.glib2'
hcode = '\tdef run(self):\n\t\treturn self.fun_h[0](self) or self.fun_c[0](self)\n'
class waflib.Tools.glib2.glib_gresource_bundle(*k, **kw)[source]

Bases: waflib.Tools.glib2.glib_gresource_base

Task to generate a .gresource binary file from a gresource.xml file

shell = True
__doc__ = '\n\tTask to generate a .gresource binary file from a gresource.xml file\n\t'
__module__ = 'waflib.Tools.glib2'
hcode = '${GLIB_COMPILE_RESOURCES} --sourcedir=${SRC[0].parent.srcpath()} --sourcedir=${SRC[0].bld_dir()} --target=${TGT} ${SRC}'
orig_run_str = '${GLIB_COMPILE_RESOURCES} --sourcedir=${SRC[0].parent.srcpath()} --sourcedir=${SRC[0].bld_dir()} --target=${TGT} ${SRC}'
vars = ['GLIB_COMPILE_RESOURCES']
waflib.Tools.glib2.find_glib_genmarshal(conf)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

waflib.Tools.glib2.find_glib_mkenums(conf)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

waflib.Tools.glib2.find_glib_compile_schemas(conf)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

waflib.Tools.glib2.find_glib_compile_resources(conf)[source]

Configuration Method bound to waflib.Configure.ConfigurationContext

waflib.Tools.glib2.configure(conf)[source]

Find the following programs:

  • glib-genmarshal and set GLIB_GENMARSHAL
  • glib-mkenums and set GLIB_MKENUMS
  • glib-compile-schemas and set GLIB_COMPILE_SCHEMAS (not mandatory)
  • glib-compile-resources and set GLIB_COMPILE_RESOURCES (not mandatory)

And set the variable GSETTINGSSCHEMADIR

waflib.Tools.glib2.options(opt)[source]

Add the --gsettingsschemadir command-line option

waflib.Tools.glib2.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.glib2.taskgen_method(func)

Decorator: register a method as a task generator method. The function must accept a task generator as first parameter:

from waflib.TaskGen import taskgen_method
@taskgen_method
def mymethod(self):
        pass
Parameters:func (function) – task generator method to add
Return type:function
waflib.Tools.glib2.feature(*k)

Decorator: register a task generator method that will be executed when the object attribute ‘feature’ contains the corresponding key(s):

from waflib.Task import feature
@feature('myfeature')
def myfunction(self):
        print('that is my feature!')
def build(bld):
        bld(features='myfeature')
Parameters:k (list of string) – feature names
waflib.Tools.glib2.before_method(*k)

Decorator: register a task generator method which will be executed before the functions of given name(s):

from waflib.TaskGen import feature, before
@feature('myfeature')
@before_method('fun2')
def fun1(self):
        print('feature 1!')
@feature('myfeature')
def fun2(self):
        print('feature 2!')
def build(bld):
        bld(features='myfeature')
Parameters:k (list of string) – method names
waflib.Tools.glib2.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')

Features defined in this module:

Previous topic

vala

Next topic

qt4

This Page