aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/shared/proparser/qmakeevaluator.cpp18
-rw-r--r--src/shared/proparser/qmakeglobals.h1
2 files changed, 17 insertions, 2 deletions
diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp
index 40f48ae1a8f..a6355c6a7ac 100644
--- a/src/shared/proparser/qmakeevaluator.cpp
+++ b/src/shared/proparser/qmakeevaluator.cpp
@@ -816,8 +816,22 @@ void QMakeEvaluator::visitProVariable(
void QMakeEvaluator::setTemplate()
{
ProStringList &values = valuesRef(statics.strTEMPLATE);
- if (values.isEmpty())
- values.append(ProString("app", NoHash));
+ if (!m_option->user_template.isEmpty()) {
+ // Don't allow override
+ values = ProStringList(ProString(m_option->user_template, NoHash));
+ } else {
+ if (values.isEmpty())
+ values.append(ProString("app", NoHash));
+ else
+ values.erase(values.begin() + 1, values.end());
+ }
+ if (!m_option->user_template_prefix.isEmpty()) {
+ QString val = values.first().toQString(m_tmp1);
+ if (!val.startsWith(m_option->user_template_prefix)) {
+ val.prepend(m_option->user_template_prefix);
+ values = ProStringList(ProString(val, NoHash));
+ }
+ }
}
void QMakeEvaluator::loadDefaults()
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h
index 64750cb2653..59394af8f56 100644
--- a/src/shared/proparser/qmakeglobals.h
+++ b/src/shared/proparser/qmakeglobals.h
@@ -66,6 +66,7 @@ public:
QProcessEnvironment environment;
#endif
QString sysroot;
+ QString user_template, user_template_prefix;
// -nocache, -cache, -spec, QMAKESPEC
// -set persistent value