aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2018-04-04 12:08:00 +0200
committerAntti Hölttä <ahoelttae@luxoft.com>2018-04-12 07:32:28 +0000
commit8658258f2f8d8dac3327a870573dc046029b74bc (patch)
treeb9af6ffd5ecf04b4896811e3b1b904d9ad9b0a92
parent741ed2546671394cfe28f9240e71b422e06609db (diff)
ivigenerator: Generate correct public headers when building a qt module
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ä <ahoelttae@luxoft.com>
-rw-r--r--mkspecs/features/ivigenerator.prf2
-rw-r--r--mkspecs/features/ivigenerator_qt_module.prf4
-rw-r--r--src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl4
-rw-r--r--src/tools/ivigenerator/templates_frontend/interface.h.tpl4
-rw-r--r--src/tools/ivigenerator/templates_frontend/module.h.tpl4
-rw-r--r--src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl4
-rw-r--r--src/tools/ivigenerator/templates_frontend/struct.h.tpl4
7 files changed, 25 insertions, 1 deletions
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 <QObject>
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 <QObject>
{% 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 %}