Revert "move finding the makespec to Option"

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>
This commit is contained in:
Oswald Buddenhagen 2012-05-09 12:47:02 +02:00
parent 28f193ab53
commit d8b2998dae
4 changed files with 46 additions and 49 deletions

View 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;
}

View 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); }

View 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");

View 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