diff options
-rw-r--r-- | mkspecs/features/ivigenerator.prf | 3 | ||||
-rwxr-xr-x | src/tools/ivigenerator/generate.py | 13 |
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) |