summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/ivigenerator.prf3
-rwxr-xr-xsrc/tools/ivigenerator/generate.py13
2 files changed, 10 insertions, 6 deletions
diff --git a/mkspecs/features/ivigenerator.prf b/mkspecs/features/ivigenerator.prf
index e94d981..ff8ed2e 100644
--- a/mkspecs/features/ivigenerator.prf
+++ b/mkspecs/features/ivigenerator.prf
@@ -63,7 +63,7 @@ IVI_GENERATOR = $$VIRTUALENV_PYTHON $$IVI_GENERATOR_PATH/generate.py
# In the debug_and_release configuration, we want to have the generator executed
# during the run of the meta Makefile to only generate the code once.
PRI = $$QFACE_OUTPUT_DIR/$$lower($${QFACE_BASE_NAME}).pri
-IVI_GENERATOR_OPTIONS = --format=$$QFACE_FORMAT
+IVI_GENERATOR_OPTIONS = --format=$$QFACE_FORMAT --force
!isEmpty(QFACE_MODULE_NAME): IVI_GENERATOR_OPTIONS += --module=$$QFACE_MODULE
# Windows doesn't offer any other way to sleep for a time inside non-interactive scripts
@@ -73,6 +73,7 @@ else: SLEEP = sleep 1
qface_sources.target = $$relative_path($$PRI, $$OUT_PWD)
qface_sources.commands = $$SLEEP && $$ENV $$shell_path($$IVI_GENERATOR) $$IVI_GENERATOR_OPTIONS $$shell_path($$QFACE_ABS_PWD/$${QFACE_FILE}) $$shell_path($$QFACE_OUTPUT_DIR)
qface_sources.depends = $$IVI_GENERATOR_PATH/generate.py
+qface_sources.depends = $$QFACE_ABS_PWD/$${QFACE_FILE}
# Add all templates of the generator format as dependency
QFACE_TEMPLATE_PWD = $$IVI_GENERATOR_PATH/templates_$${QFACE_FORMAT}
diff --git a/src/tools/ivigenerator/generate.py b/src/tools/ivigenerator/generate.py
index 12df180..66904cb 100755
--- a/src/tools/ivigenerator/generate.py
+++ b/src/tools/ivigenerator/generate.py
@@ -565,10 +565,11 @@ def generate(tplconfig, moduleConfig, src, dst):
dst = generator.apply('{{dst}}', ctx)
generator.destination = dst
module_rules = gen_config['generate_rules']['module_rules']
+ force = moduleConfig['force']
if module_rules is None: module_rules = []
for rule in module_rules:
preserve = rule['preserve'] if 'preserve' in rule else False
- generator.write(rule['dest_file'], rule['template_file'], ctx, preserve)
+ 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')
@@ -577,7 +578,7 @@ def generate(tplconfig, moduleConfig, src, dst):
if interface_rules is None: interface_rules = []
for rule in interface_rules:
preserve = rule['preserve'] if 'preserve' in rule else False
- generator.write(rule['dest_file'], rule['template_file'], ctx, preserve)
+ generator.write(rule['dest_file'], rule['template_file'], ctx, preserve, force)
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)
@@ -585,7 +586,7 @@ def generate(tplconfig, moduleConfig, src, dst):
ctx.update({'struct': struct})
for rule in gen_config['generate_rules']['struct_rules']:
preserve = rule['preserve'] if 'preserve' in rule else False
- generator.write(rule['dest_file'], rule['template_file'], ctx, preserve)
+ generator.write(rule['dest_file'], rule['template_file'], ctx, preserve, force)
def run(format, moduleConfig, src, dst):
@@ -604,10 +605,11 @@ def run(format, moduleConfig, src, dst):
@click.option('--format', '-f', multiple=False)
@click.option('--module', default=False)
@click.option('--validation_info', default=False)
+@click.option('--force', is_flag=True, default=False)
@click.argument('src', nargs=-1, type=click.Path(exists=True))
@click.argument('dst', nargs=1, type=click.Path(exists=True))
-def app(src, dst, format, reload, module, validation_info):
+def app(src, dst, format, reload, module, validation_info, force):
"""Takes several files or directories as src and generates the code
in the given dst directory."""
@@ -625,7 +627,8 @@ def app(src, dst, format, reload, module, validation_info):
else:
moduleConfig = {
"module": module,
- "validation_info": validation_info
+ "validation_info": validation_info,
+ "force": force
}
run(format, moduleConfig, src, dst)