factor out code to install default mkspec

Change-Id: I15f371df7bc24cd85c1c0924d1929da4dc3db16d
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
This commit is contained in:
Oswald Buddenhagen 2012-02-24 20:32:08 +01:00 committed by Qt by Nokia
parent fa1b9070af
commit e05d5c36be
2 changed files with 25 additions and 17 deletions

View File

@ -2638,6 +2638,29 @@ QString Configure::addDefine(QString def)
}
#if !defined(EVAL)
bool Configure::copySpec(const char *name, const char *pfx, const QString &spec)
{
// Copy configured mkspec to default directory, but remove the old one first, if there is any
QString defSpec = buildPath + "/mkspecs/" + name;
QFileInfo defSpecInfo(defSpec);
if (defSpecInfo.exists()) {
if (!Environment::rmdir(defSpec)) {
cout << "Couldn't update default " << pfx << "mkspec! Are files in " << qPrintable(defSpec) << " read-only?" << endl;
dictionary["DONE"] = "error";
return false;
}
}
QString pltSpec = sourcePath + "/mkspecs/" + spec;
QString includeSpec = buildPath + "/mkspecs/" + spec;
if (!Environment::cpdir(pltSpec, defSpec, includeSpec)) {
cout << "Couldn't update default " << pfx << "mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl;
dictionary["DONE"] = "error";
return false;
}
return true;
}
void Configure::generateConfigfiles()
{
QDir(buildPath).mkpath("src/corelib/global");
@ -2821,25 +2844,9 @@ void Configure::generateConfigfiles()
tmpFile.close();
}
// Copy configured mkspec to default directory, but remove the old one first, if there is any
QString defSpec = buildPath + "/mkspecs/default";
QFileInfo defSpecInfo(defSpec);
if (defSpecInfo.exists()) {
if (!Environment::rmdir(defSpec)) {
cout << "Couldn't update default mkspec! Are files in " << qPrintable(defSpec) << " read-only?" << endl;
dictionary["DONE"] = "error";
return;
}
}
QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"];
QString pltSpec = sourcePath + "/mkspecs/" + spec;
QString includeSpec = buildPath + "/mkspecs/" + spec;
if (!Environment::cpdir(pltSpec, defSpec, includeSpec)) {
cout << "Couldn't update default mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl;
dictionary["DONE"] = "error";
if (!copySpec("default", "", spec))
return;
}
// Generate the new qconfig.cpp file
QDir(buildPath).mkpath("src/corelib/global");

View File

@ -79,6 +79,7 @@ public:
void generateMakefiles();
void appendMakeItem(int inList, const QString &item);
#if !defined(EVAL)
bool copySpec(const char *name, const char *pfx, const QString &spec);
void generateConfigfiles();
#endif
void showSummary();