diff options
Diffstat (limited to 'waftools/generators/sources.py')
-rw-r--r-- | waftools/generators/sources.py | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/waftools/generators/sources.py b/waftools/generators/sources.py deleted file mode 100644 index dae1985e2d..0000000000 --- a/waftools/generators/sources.py +++ /dev/null @@ -1,95 +0,0 @@ -from waflib.Build import BuildContext -from waflib import TaskGen, Utils -from io import StringIO -from TOOLS.matroska import generate_C_header, generate_C_definitions -from TOOLS.file2string import file2string -import os - -def __wayland_scanner_cmd__(ctx, mode, dir, src, vendored_file): - return "${{WAYSCAN}} {0} < {1} > ${{TGT}}".format( - mode, - "${SRC}" if vendored_file else "{}/{}".format(dir, src) - ) - -def __file2string__(ctx, **kwargs): - ctx( - rule = __file2string_cmd__(ctx), - before = ("c",), - name = os.path.basename(kwargs['target']), - **kwargs - ) - -def execf(self, fn): - setattr(self, 'before', ['c']) - setattr(self, 'rule', ' ') # waf doesn't print the task with no rule - target = getattr(self, 'target', None) - out = self.path.find_or_declare(target) - tmp = StringIO() - fn(tmp) - out.write(tmp.getvalue()) - tmp.close() - -@TaskGen.feature('file2string') -def f2s(self): - def fn(out): - source = getattr(self, 'source', None) - src = self.path.find_resource(source) - file2string(source, iter(src.read('rb').splitlines(True)), out) - execf(self, fn) - -@TaskGen.feature('ebml_header') -def ebml_header(self): - execf(self, generate_C_header) - -@TaskGen.feature('ebml_definitions') -def ebml_definitions(self): - execf(self, generate_C_definitions) - -def __wayland_protocol_code__(ctx, **kwargs): - protocol_is_vendored = kwargs.get("vendored_protocol", False) - file_name = kwargs['protocol'] + '.xml' - - if protocol_is_vendored: - del kwargs['vendored_protocol'] - kwargs['source'] = '{}/{}'.format(kwargs['proto_dir'], file_name) - - ctx( - rule = __wayland_scanner_cmd__(ctx, 'private-code', kwargs['proto_dir'], - file_name, - protocol_is_vendored), - name = os.path.basename(kwargs['target']), - **kwargs - ) - -def __wayland_protocol_header__(ctx, **kwargs): - protocol_is_vendored = kwargs.get("vendored_protocol", False) - file_name = kwargs['protocol'] + '.xml' - - if protocol_is_vendored: - del kwargs['vendored_protocol'] - kwargs['source'] = '{}/{}'.format(kwargs['proto_dir'], file_name) - - ctx( - rule = __wayland_scanner_cmd__(ctx, 'client-header', kwargs['proto_dir'], - file_name, - protocol_is_vendored), - before = ('c',), - name = os.path.basename(kwargs['target']), - **kwargs - ) - -@TaskGen.feature('cprogram') -@TaskGen.feature('cshlib') -@TaskGen.feature('cstlib') -@TaskGen.feature('apply_link') -@TaskGen.after_method('process_source', 'process_use', 'apply_link', 'process_uselib_local', 'propagate_uselib_vars', 'do_the_symbol_stuff') -def handle_add_object(tgen): - if getattr(tgen, 'add_objects', None): - for input in tgen.add_objects: - input_node = tgen.path.find_resource(input) - if input_node is not None: - tgen.link_task.inputs.append(input_node) - -BuildContext.file2string = __file2string__ -BuildContext.wayland_protocol_code = __wayland_protocol_code__ -BuildContext.wayland_protocol_header = __wayland_protocol_header__ |