From 8658258f2f8d8dac3327a870573dc046029b74bc Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Wed, 4 Apr 2018 12:08:00 +0200 Subject: ivigenerator: Generate correct public headers when building a qt module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When building a qt module all public headers need to use the module name in their include statements. This is done by using the QFACE_MODULE_NAME qmake variable, which is now mandatory when generating a qt module from a qface file Change-Id: I31232a48a3c978552a27f1d82f3eacba480427b2 Reviewed-by: Antti Hölttä --- mkspecs/features/ivigenerator.prf | 2 +- mkspecs/features/ivigenerator_qt_module.prf | 4 ++++ src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl | 4 ++++ src/tools/ivigenerator/templates_frontend/interface.h.tpl | 4 ++++ src/tools/ivigenerator/templates_frontend/module.h.tpl | 4 ++++ src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl | 4 ++++ src/tools/ivigenerator/templates_frontend/struct.h.tpl | 4 ++++ 7 files changed, 25 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/ivigenerator.prf b/mkspecs/features/ivigenerator.prf index ff8ed2e..8f98234 100644 --- a/mkspecs/features/ivigenerator.prf +++ b/mkspecs/features/ivigenerator.prf @@ -64,7 +64,7 @@ IVI_GENERATOR = $$VIRTUALENV_PYTHON $$IVI_GENERATOR_PATH/generate.py # 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 --force -!isEmpty(QFACE_MODULE_NAME): IVI_GENERATOR_OPTIONS += --module=$$QFACE_MODULE +!isEmpty(QFACE_MODULE_NAME): IVI_GENERATOR_OPTIONS += --module=$${QFACE_MODULE_NAME} # Windows doesn't offer any other way to sleep for a time inside non-interactive scripts equals(QMAKE_HOST.os, Windows): SLEEP = ping -n 2 127.0.0.1 >nul diff --git a/mkspecs/features/ivigenerator_qt_module.prf b/mkspecs/features/ivigenerator_qt_module.prf index bceff89..7533c1e 100644 --- a/mkspecs/features/ivigenerator_qt_module.prf +++ b/mkspecs/features/ivigenerator_qt_module.prf @@ -13,6 +13,10 @@ error("Invalid qface file provided: The file needs to end with .qface") } +isEmpty(QFACE_MODULE_NAME) { + error("QFACE_MODULE_NAME needs to be set when a qt module should be generated") +} + QFACE_PWD = $$dirname(QFACE_SOURCES) QFACE_ABS_PWD = $$absolute_path($$QFACE_PWD, $$_PRO_FILE_PWD_) diff --git a/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl b/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl index 55874ee..d06162f 100644 --- a/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl +++ b/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl @@ -44,7 +44,11 @@ #ifndef {{oncedefine}} #define {{oncedefine}} +{% if interface.module.tags.config.module %} +#include <{{interface.module.tags.config.module}}/{{module.module_name|lower}}module.h> +{% else %} #include "{{module.module_name|lower}}module.h" +{% endif %} {% for inc in interface|struct_includes %} {{inc}} diff --git a/src/tools/ivigenerator/templates_frontend/interface.h.tpl b/src/tools/ivigenerator/templates_frontend/interface.h.tpl index 9786210..0c33c65 100644 --- a/src/tools/ivigenerator/templates_frontend/interface.h.tpl +++ b/src/tools/ivigenerator/templates_frontend/interface.h.tpl @@ -44,7 +44,11 @@ #ifndef {{oncedefine}} #define {{oncedefine}} +{% if interface.module.tags.config.module %} +#include <{{interface.module.tags.config.module}}/{{module.module_name|lower}}module.h> +{% else %} #include "{{module.module_name|lower}}module.h" +{% endif %} {% for inc in interface|struct_includes %} {{inc}} diff --git a/src/tools/ivigenerator/templates_frontend/module.h.tpl b/src/tools/ivigenerator/templates_frontend/module.h.tpl index 01f7f51..aa10866 100644 --- a/src/tools/ivigenerator/templates_frontend/module.h.tpl +++ b/src/tools/ivigenerator/templates_frontend/module.h.tpl @@ -45,7 +45,11 @@ #ifndef {{oncedefine}} #define {{oncedefine}} +{% if module.tags.config.module %} +#include <{{module.tags.config.module}}/{{module.module_name|lower}}global.h> +{% else %} #include "{{module.module_name|lower}}global.h" +{% endif %} #include QT_BEGIN_NAMESPACE diff --git a/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl b/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl index bbc6974..c805956 100644 --- a/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl +++ b/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl @@ -45,7 +45,11 @@ #ifndef {{oncedefine}} #define {{oncedefine}} +{% if module.tags.config.module %} +#include <{{module.tags.config.module}}/{{module.module_name|lower}}module.h> +{% else %} #include "{{module.module_name|lower}}module.h" +{% endif %} #include {% for struct in module.structs %} diff --git a/src/tools/ivigenerator/templates_frontend/struct.h.tpl b/src/tools/ivigenerator/templates_frontend/struct.h.tpl index 7a6b3d7..ed97d4f 100644 --- a/src/tools/ivigenerator/templates_frontend/struct.h.tpl +++ b/src/tools/ivigenerator/templates_frontend/struct.h.tpl @@ -45,7 +45,11 @@ #ifndef {{oncedefine}} #define {{oncedefine}} +{% if interface.module.tags.config.module %} +#include <{{interface.module.tags.config.module}}/{{module.module_name|lower}}module.h> +{% else %} #include "{{module.module_name|lower}}module.h" +{% endif %} {% for inc in struct|struct_includes %} {{inc}} {% endfor %} -- cgit v1.2.3