From d3e4cd2533e71f0f78a8abb2fa3ef0ee713d9a2f Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Wed, 10 Jun 2009 19:16:16 +0200
Subject: [PATCH] System includes for winscw tool chain.

---
 .../qt4projectmanager/qt-s60/qt-s60-todo.txt      |  4 +++-
 .../qt4projectmanager/qt-s60/winscwtoolchain.cpp  | 15 ++++++++++++---
 .../qt4projectmanager/qt-s60/winscwtoolchain.h    |  1 +
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
index 60bb6244e7d..7cb88473620 100644
--- a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
+++ b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt
@@ -15,9 +15,11 @@
       of ToolChain::defaultMakeTarget then as well
     * build parser should be defined/created by toolchain, not make step
 
+* Tool chains:
+    * changing tool chain does not reindex (changed includes+defines)
+
 * WINSCW tool chain:
     * predefined macros
-    * system includes
 
 * Run WINSCW executables
 * Deploy gcce executables
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
index b54b79a1d9a..3ff84faff0d 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
@@ -25,11 +25,15 @@ QByteArray WINSCWToolChain::predefinedMacros()
 
 QList<HeaderPath> WINSCWToolChain::systemHeaderPaths()
 {
-    // TODO
+    if (m_systemHeaderPaths.isEmpty()) {
+        foreach (const QString &value, systemIncludes()) {
+            m_systemHeaderPaths.append(HeaderPath(value, HeaderPath::GlobalHeaderPath));
+        }
+    }
     return m_systemHeaderPaths;
 }
 
-void WINSCWToolChain::addToEnvironment(ProjectExplorer::Environment &env)
+QStringList WINSCWToolChain::systemIncludes() const
 {
     QStringList symIncludes = QStringList()
         << "\\MSL\\MSL_C\\MSL_Common\\Include"
@@ -41,7 +45,12 @@ void WINSCWToolChain::addToEnvironment(ProjectExplorer::Environment &env)
         << "\\Win32-x86 Support\\Headers\\Win32 SDK";
     for (int i = 0; i < symIncludes.size(); ++i)
         symIncludes[i].prepend(QString("%1\\x86Build\\Symbian_Support").arg(m_carbidePath));
-    env.set("MWCSYM2INCLUDES", symIncludes.join(";"));
+    return symIncludes;
+}
+
+void WINSCWToolChain::addToEnvironment(ProjectExplorer::Environment &env)
+{
+    env.set("MWCSYM2INCLUDES", systemIncludes().join(";"));
     QStringList symLibraries = QStringList()
         << "\\Win32-x86 Support\\Libraries\\Win32 SDK"
         << "\\Runtime\\Runtime_x86\\Runtime_Win32\\Libs";
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
index 089f9574ab4..a1b331acd19 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
@@ -24,6 +24,7 @@ protected:
     bool equals(ToolChain *other) const;
 
 private:
+    QStringList systemIncludes() const;
     QString m_carbidePath;
     QString m_deviceId;
     QString m_deviceName;
-- 
GitLab