diff options
author | Dominik Holland <dominik.holland@pelagicore.com> | 2019-05-10 15:37:57 +0200 |
---|---|---|
committer | Robert Griebl <robert.griebl@pelagicore.com> | 2019-05-14 13:41:58 +0000 |
commit | 884c02e8aa9502616f5a32c465e528c01ea749a1 (patch) | |
tree | ec591c7c41d85dd14c8f35eaa6cf6302a14cc2da | |
parent | 992f34a3b15074236e8c08cfcf794b2058b37af6 (diff) |
ivigenerator: Make sure the 'config' tag is always available
All our templates expect the config tag to be available and just check
for specific values inside it.
We already had some code which added the 'config' tag for most symbols,
but this didn't work in all cases.
Change-Id: I8b72cc38500293029799b09a6a0b57695bef329a
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
-rwxr-xr-x | src/tools/ivigenerator/generate.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/tools/ivigenerator/generate.py b/src/tools/ivigenerator/generate.py index 0b96c94..f5aa32c 100755 --- a/src/tools/ivigenerator/generate.py +++ b/src/tools/ivigenerator/generate.py @@ -804,9 +804,29 @@ def generate(tplconfig, moduleConfig, annotations, src, dst): currentQFaceSrcFile = src[0] ctx = {'dst': dst, 'qtASVersion': builtin_config["VERSION"], 'srcFile':srcFile, 'srcBase':srcBase, 'features': builtin_config["FEATURES"]} gen_config = yaml.load(open(here / '{0}.yaml'.format(os.path.basename(tplconfig))), Loader=yaml.SafeLoader) + + #Make sure the config tag is available for all our symbols for module in system.modules: - log.debug('generate code for module %s', module) module.add_tag('config') + for interface in module.interfaces: + interface.add_tag('config') + for property in interface.properties: + property.add_tag('config') + for operation in interface.operations: + operation.add_tag('config') + for signal in interface.signals: + signal.add_tag('config') + for struct in module.structs: + struct.add_tag('config') + for field in struct.fields: + field.add_tag('config') + for enum in module.enums: + enum.add_tag('config') + for member in enum.members: + member.add_tag('config') + + for module in system.modules: + log.debug('generate code for module %s', module) for val, key in moduleConfig.items(): module.add_attribute('config', val, key) ctx.update({'module': module}) @@ -821,7 +841,6 @@ def generate(tplconfig, moduleConfig, annotations, src, dst): generator.write(rule['dest_file'], rule['template_file'], ctx, preserve, force) for interface in module.interfaces: log.debug('generate backend code for interface %s', interface) - interface.add_tag('config') ctx.update({'interface': interface}) interface_rules = gen_config['generate_rules']['interface_rules'] if interface_rules is None: interface_rules = [] @@ -831,7 +850,6 @@ def generate(tplconfig, moduleConfig, annotations, src, dst): if 'struct_rules' in gen_config['generate_rules'] and isinstance(gen_config['generate_rules']['struct_rules'], list): for struct in module.structs: log.debug('generate code for struct %s', struct) - struct.add_tag('config') ctx.update({'struct': struct}) for rule in gen_config['generate_rules']['struct_rules']: preserve = rule['preserve'] if 'preserve' in rule else False |