diff options
-rw-r--r-- | src/shared/proparser/qmakeevaluator.cpp | 18 | ||||
-rw-r--r-- | src/shared/proparser/qmakeglobals.h | 1 |
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 |