From 479aa2dc28c0878dedd8851499ff716918fec69c Mon Sep 17 00:00:00 2001
From: Jake Petroules <jake.petroules@petroules.com>
Date: Sat, 12 Oct 2013 14:23:09 -0400
Subject: [PATCH] Export CONFIG and QT_CONFIG from qconfig.pri to QBS.

Task-number: QBS-397
Change-Id: I9b29781e752176d0cf71221b896a6ac017538c7b
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 .../defaultpropertyprovider.cpp                 |  2 ++
 src/plugins/qbsprojectmanager/qbsconstants.h    |  2 ++
 src/plugins/qtsupport/baseqtversion.cpp         | 17 +++++++++++++++--
 src/plugins/qtsupport/baseqtversion.h           |  7 +++++++
 4 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
index a5444559d21..139a153af0b 100644
--- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
+++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
@@ -67,6 +67,8 @@ QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, c
         data.insert(QLatin1String(QTCORE_VERSION), qt->qtVersionString());
         if (qt->isFrameworkBuild())
             data.insert(QLatin1String(QTCORE_FRAMEWORKBUILD), true);
+        data.insert(QLatin1String(QTCORE_CONFIG), qt->configValues());
+        data.insert(QLatin1String(QTCORE_QTCONFIG), qt->qtConfigValues());
     }
 
     if (ProjectExplorer::SysRootKitInformation::hasSysRoot(k))
diff --git a/src/plugins/qbsprojectmanager/qbsconstants.h b/src/plugins/qbsprojectmanager/qbsconstants.h
index 9b8cf7c15f1..148999ff975 100644
--- a/src/plugins/qbsprojectmanager/qbsconstants.h
+++ b/src/plugins/qbsprojectmanager/qbsconstants.h
@@ -45,6 +45,8 @@ const char QTCORE_NAMESPACE[] = "Qt.core.namespace";
 const char QTCORE_LIBINFIX[] = "Qt.core.libInfix";
 const char QTCORE_MKSPEC[] = "Qt.core.mkspecPath";
 const char QTCORE_FRAMEWORKBUILD[] = "Qt.core.frameworkBuild";
+const char QTCORE_CONFIG[] = "Qt.core.config";
+const char QTCORE_QTCONFIG[] = "Qt.core.qtConfig";
 
 
 // Toolchain related settings:
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index d1d9cd66256..98ca503fb10 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -815,10 +815,11 @@ void BaseQtVersion::ensureMkSpecParsed() const
 
 void BaseQtVersion::parseMkSpec(ProFileEvaluator *evaluator) const
 {
-    QStringList configValues = evaluator->values(QLatin1String("CONFIG"));
+    m_configValues = evaluator->values(QLatin1String("CONFIG"));
+    m_qtConfigValues = evaluator->values(QLatin1String("QT_CONFIG"));
     m_defaultConfigIsDebugAndRelease = false;
     m_frameworkBuild = false;
-    foreach (const QString &value, configValues) {
+    foreach (const QString &value, m_configValues) {
         if (value == QLatin1String("debug"))
             m_defaultConfigIsDebug = true;
         else if (value == QLatin1String("release"))
@@ -1050,6 +1051,18 @@ QString BaseQtVersion::examplesPath() const
     return qmakeProperty("QT_INSTALL_EXAMPLES");
 }
 
+QStringList BaseQtVersion::configValues() const
+{
+    ensureMkSpecParsed();
+    return m_configValues;
+}
+
+QStringList BaseQtVersion::qtConfigValues() const
+{
+    ensureMkSpecParsed();
+    return m_qtConfigValues;
+}
+
 QList<HeaderPath> BaseQtVersion::systemHeaderPathes(const Kit *k) const
 {
     Q_UNUSED(k);
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index 6093488f040..6ff0b22bf0b 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -36,6 +36,7 @@
 
 #include <projectexplorer/abi.h>
 
+#include <QStringList>
 #include <QVariantMap>
 
 namespace Utils {
@@ -235,6 +236,9 @@ public:
     bool hasDebugBuild() const;
     bool hasReleaseBuild() const;
 
+    QStringList configValues() const;
+    QStringList qtConfigValues() const;
+
 protected:
     BaseQtVersion();
     BaseQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString());
@@ -279,6 +283,9 @@ private:
     mutable bool m_qmakeIsExecutable;
     mutable bool m_hasQtAbis;
 
+    mutable QStringList m_configValues;
+    mutable QStringList m_qtConfigValues;
+
     QString m_displayName;
     QString m_autodetectionSource;
     mutable Utils::FileName m_sourcePath;
-- 
GitLab