summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/tools/ivigenerator/generate.py24
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