Revert "move finding the makespec to Option"
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Wed, 9 May 2012 10:47:02 +0000 (12:47 +0200)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 19 Jun 2012 14:37:49 +0000 (16:37 +0200)
Needed for an upcoming revert.
This reverts commit 74a6669fa7c0d6e2cb7d34d56332d620d2a07755.

Conflicts:

qmake/option.cpp
qmake/project.cpp
qmake/property.cpp

Change-Id: I56088506d27bf1f095f9261c75224f4bee17ec60
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
qmake/option.cpp
qmake/option.h
qmake/project.cpp
qmake/property.cpp

index b2a1e69..3ddde2a 100644 (file)
@@ -583,49 +583,6 @@ void Option::applyHostMode()
    }
 }
 
-QStringList Option::mkspecPaths()
-{
-    QStringList ret;
-    const QString concat = QLatin1String("/mkspecs");
-
-    QByteArray qmakepath = qgetenv("QMAKEPATH");
-    if (!qmakepath.isEmpty()) {
-        const QStringList lst = splitPathList(QString::fromLocal8Bit(qmakepath));
-        for (QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it)
-            ret << ((*it) + concat);
-    }
-    if (!Option::mkfile::project_build_root.isEmpty())
-        ret << Option::mkfile::project_build_root + concat;
-    if (!Option::mkfile::project_root.isEmpty())
-        ret << Option::mkfile::project_root + concat;
-    ret << QLibraryInfo::location(QLibraryInfo::HostDataPath) + concat;
-    ret.removeDuplicates();
-    return ret;
-}
-
-bool Option::resolveSpec(QString *spec)
-{
-    QString qmakespec = fixEnvVariables(*spec);
-    if (qmakespec.isEmpty())
-        qmakespec = "default";
-    if (QDir::isRelativePath(qmakespec)) {
-        QStringList mkspec_roots = mkspecPaths();
-        debug_msg(2, "Looking for mkspec %s in (%s)", qmakespec.toLatin1().constData(),
-                  mkspec_roots.join("::").toLatin1().constData());
-        for (QStringList::ConstIterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) {
-            QString mkspec = (*it) + QLatin1Char('/') + qmakespec;
-            if (QFile::exists(mkspec)) {
-                *spec = mkspec;
-                return true;
-            }
-        }
-        fprintf(stderr, "Could not find mkspecs for your QMAKESPEC(%s) after trying:\n\t%s\n",
-                qmakespec.toLatin1().constData(), mkspec_roots.join("\n\t").toLatin1().constData());
-            return false;
-    }
-    return true;
-}
-
 bool Option::prepareProject(const QString &pfile)
 {
     mkfile::project_build_root.clear();
@@ -679,9 +636,6 @@ bool Option::prepareProject(const QString &pfile)
         mkfile::project_root.clear();
     }
 
-    if (!resolveSpec(&Option::mkfile::qmakespec))
-        return false;
-
     return true;
 }
 
index 2338487..ce680b0 100644 (file)
@@ -109,7 +109,6 @@ struct Option
     //both of these must be called..
     static int init(int argc=0, char **argv=0); //parse cmdline
     static void applyHostMode();
-    static QStringList mkspecPaths();
     static bool prepareProject(const QString &pfile);
     static bool postProcessProject(QMakeProject *);
 
@@ -214,7 +213,6 @@ struct Option
 
 private:
     static int parseCommandLine(int, char **, int=0);
-    static bool resolveSpec(QString *spec);
 };
 
 inline QString fixEnvVariables(const QString &x) { return Option::fixString(x, Option::FixEnvVars); }
index 3df80bc..612acda 100644 (file)
@@ -602,6 +602,26 @@ QStringList qmake_feature_paths(QMakeProperty *prop=0)
     return feature_roots;
 }
 
+QStringList qmake_mkspec_paths()
+{
+    QStringList ret;
+    const QString concat = QLatin1String("/mkspecs");
+    QByteArray qmakepath = qgetenv("QMAKEPATH");
+    if (!qmakepath.isEmpty()) {
+        const QStringList lst = splitPathList(QString::fromLocal8Bit(qmakepath));
+        for (QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it)
+            ret << ((*it) + concat);
+    }
+    if (!Option::mkfile::project_build_root.isEmpty())
+        ret << Option::mkfile::project_build_root + concat;
+    if (!Option::mkfile::project_root.isEmpty())
+        ret << Option::mkfile::project_root + concat;
+    ret << QLibraryInfo::location(QLibraryInfo::DataPath) + concat;
+    ret.removeDuplicates();
+
+    return ret;
+}
+
 QMakeProject::~QMakeProject()
 {
     if(own_prop)
@@ -1285,6 +1305,29 @@ QMakeProject::read(uchar cmd)
         }
         {             // parse mkspec
             QString qmakespec = Option::mkfile::qmakespec;
+            if (qmakespec.isEmpty())
+                qmakespec = "default";
+            if (QDir::isRelativePath(qmakespec)) {
+                    QStringList mkspec_roots = qmake_mkspec_paths();
+                    debug_msg(2, "Looking for mkspec %s in (%s)", qmakespec.toLatin1().constData(),
+                              mkspec_roots.join("::").toLatin1().constData());
+                    bool found_mkspec = false;
+                    for (QStringList::ConstIterator it = mkspec_roots.begin(); it != mkspec_roots.end(); ++it) {
+                        QString mkspec = (*it) + QLatin1Char('/') + qmakespec;
+                        if (QFile::exists(mkspec)) {
+                            found_mkspec = true;
+                            Option::mkfile::qmakespec = qmakespec = mkspec;
+                            break;
+                        }
+                    }
+                    if (!found_mkspec) {
+                        fprintf(stderr, "Could not find mkspecs for your QMAKESPEC(%s) after trying:\n\t%s\n",
+                                qmakespec.toLatin1().constData(), mkspec_roots.join("\n\t").toLatin1().constData());
+                        return false;
+                    }
+            }
+
+            // parse qmake configuration
             while(qmakespec.endsWith(QLatin1Char('/')))
                 qmakespec.truncate(qmakespec.length()-1);
             QString spec = qmakespec + QLatin1String("/qmake.conf");
index 1952b50..076c45f 100644 (file)
@@ -49,6 +49,8 @@
 
 QT_BEGIN_NAMESPACE
 
+QStringList qmake_mkspec_paths(); //project.cpp
+
 static const struct {
     const char *name;
     QLibraryInfo::LibraryLocation loc;
@@ -115,7 +117,7 @@ QMakeProperty::value(QString v, bool just_check)
     if (!val.isNull())
         return val;
     else if(v == "QMAKE_MKSPECS")
-        return Option::mkspecPaths().join(Option::dirlist_sep);
+        return qmake_mkspec_paths().join(Option::dirlist_sep);
     else if(v == "QMAKE_VERSION")
         return qmake_version();
 #ifdef QT_VERSION_STR