aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2019-05-10 15:37:57 +0200
committerRobert Griebl <robert.griebl@pelagicore.com>2019-05-14 13:41:58 +0000
commit884c02e8aa9502616f5a32c465e528c01ea749a1 (patch)
treeec591c7c41d85dd14c8f35eaa6cf6302a14cc2da
parent992f34a3b15074236e8c08cfcf794b2058b37af6 (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-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