forked from qt-creator/qt-creator
Share the code for determining used qmake arguments.
Move the code that compares the Qt version's debug|release property with the build configuration's debug|release property to the new build configuration class. Reviewed-by: dt
This commit is contained in:
@@ -87,22 +87,17 @@ QStringList QMakeStep::allArguments()
|
|||||||
arguments << QLatin1String("-unix");
|
arguments << QLatin1String("-unix");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (bc->value("buildConfiguration").isValid()) {
|
// Find out what flags we pass on to qmake
|
||||||
QStringList configarguments;
|
QStringList addedUserConfigArguments;
|
||||||
QtVersion::QmakeBuildConfigs defaultBuildConfiguration = bc->qtVersion()->defaultBuildConfig();
|
QStringList removedUserConfigArguments;
|
||||||
QtVersion::QmakeBuildConfigs projectBuildConfiguration = QtVersion::QmakeBuildConfig(bc->value("buildConfiguration").toInt());
|
bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
|
||||||
if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll))
|
if (!removedUserConfigArguments.isEmpty()) {
|
||||||
configarguments << "CONFIG-=debug_and_release";
|
foreach (const QString &removedConfig, removedUserConfigArguments)
|
||||||
if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll))
|
arguments.append("CONFIG-=" + removedConfig);
|
||||||
configarguments << "CONFIG+=debug_and_release";
|
}
|
||||||
if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(projectBuildConfiguration & QtVersion::DebugBuild))
|
if (!addedUserConfigArguments.isEmpty()) {
|
||||||
configarguments << "CONFIG+=release";
|
foreach (const QString &addedConfig, addedUserConfigArguments)
|
||||||
if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (projectBuildConfiguration & QtVersion::DebugBuild))
|
arguments.append("CONFIG+=" + addedConfig);
|
||||||
configarguments << "CONFIG+=debug";
|
|
||||||
if (!configarguments.isEmpty())
|
|
||||||
arguments << configarguments;
|
|
||||||
} else {
|
|
||||||
qWarning()<< "The project should always have a qmake build configuration set";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!additonalArguments.isEmpty())
|
if (!additonalArguments.isEmpty())
|
||||||
|
@@ -565,34 +565,11 @@ void MaemoRunConfiguration::updateTarget()
|
|||||||
reader->setCumulative(false);
|
reader->setCumulative(false);
|
||||||
reader->setQtVersion(qtVersion);
|
reader->setQtVersion(qtVersion);
|
||||||
|
|
||||||
// Find out what flags we pass on to qmake, this code is duplicated in
|
// Find out what flags we pass on to qmake
|
||||||
// the qmake step
|
|
||||||
QtVersion::QmakeBuildConfigs defaultBuildConfiguration =
|
|
||||||
qtVersion->defaultBuildConfig();
|
|
||||||
QtVersion::QmakeBuildConfig projectBuildConfiguration =
|
|
||||||
QtVersion::QmakeBuildConfig(qt4Project->activeBuildConfiguration()
|
|
||||||
->value("buildConfiguration").toInt());
|
|
||||||
|
|
||||||
QStringList addedUserConfigArguments;
|
QStringList addedUserConfigArguments;
|
||||||
QStringList removedUserConfigArguments;
|
QStringList removedUserConfigArguments;
|
||||||
if ((defaultBuildConfiguration & QtVersion::BuildAll)
|
qt4bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
|
||||||
&& !(projectBuildConfiguration & QtVersion::BuildAll))
|
reader->setConfigCommandLineArguments(addedUserConfigArguments, removedUserConfigArguments);
|
||||||
removedUserConfigArguments << "debug_and_release";
|
|
||||||
|
|
||||||
if (!(defaultBuildConfiguration & QtVersion::BuildAll)
|
|
||||||
&& (projectBuildConfiguration & QtVersion::BuildAll))
|
|
||||||
addedUserConfigArguments << "debug_and_release";
|
|
||||||
|
|
||||||
if ((defaultBuildConfiguration & QtVersion::DebugBuild)
|
|
||||||
&& !(projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "release";
|
|
||||||
|
|
||||||
if (!(defaultBuildConfiguration & QtVersion::DebugBuild)
|
|
||||||
&& (projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "debug";
|
|
||||||
|
|
||||||
reader->setUserConfigCmdArgs(addedUserConfigArguments,
|
|
||||||
removedUserConfigArguments);
|
|
||||||
|
|
||||||
if (!reader->readProFile(m_proFilePath)) {
|
if (!reader->readProFile(m_proFilePath)) {
|
||||||
delete reader;
|
delete reader;
|
||||||
|
@@ -286,22 +286,11 @@ void S60DeviceRunConfiguration::updateTarget()
|
|||||||
reader->setCumulative(false);
|
reader->setCumulative(false);
|
||||||
reader->setQtVersion(qtVersion);
|
reader->setQtVersion(qtVersion);
|
||||||
|
|
||||||
// Find out what flags we pass on to qmake, this code is duplicated in the qmake step
|
// Find out what flags we pass on to qmake
|
||||||
QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion->defaultBuildConfig();
|
|
||||||
QtVersion::QmakeBuildConfigs projectBuildConfiguration =
|
|
||||||
QtVersion::QmakeBuildConfigs(qt4bc->value("buildConfiguration").toInt());
|
|
||||||
QStringList addedUserConfigArguments;
|
QStringList addedUserConfigArguments;
|
||||||
QStringList removedUserConfigArguments;
|
QStringList removedUserConfigArguments;
|
||||||
if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll))
|
qt4bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
|
||||||
removedUserConfigArguments << "debug_and_release";
|
reader->setConfigCommandLineArguments(addedUserConfigArguments, removedUserConfigArguments);
|
||||||
if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll))
|
|
||||||
addedUserConfigArguments << "debug_and_release";
|
|
||||||
if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "release";
|
|
||||||
if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "debug";
|
|
||||||
|
|
||||||
reader->setUserConfigCmdArgs(addedUserConfigArguments, removedUserConfigArguments);
|
|
||||||
|
|
||||||
if (!reader->readProFile(m_proFilePath)) {
|
if (!reader->readProFile(m_proFilePath)) {
|
||||||
delete reader;
|
delete reader;
|
||||||
@@ -346,7 +335,7 @@ void S60DeviceRunConfiguration::updateTarget()
|
|||||||
m_platform = QLatin1String("armv6");
|
m_platform = QLatin1String("armv6");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (projectBuildConfiguration & QtVersion::DebugBuild)
|
if (qt4bc->qmakeBuildConfiguration() & QtVersion::DebugBuild)
|
||||||
m_target = QLatin1String("udeb");
|
m_target = QLatin1String("udeb");
|
||||||
else
|
else
|
||||||
m_target = QLatin1String("urel");
|
m_target = QLatin1String("urel");
|
||||||
|
@@ -133,21 +133,11 @@ void S60EmulatorRunConfiguration::updateTarget()
|
|||||||
reader->setCumulative(false);
|
reader->setCumulative(false);
|
||||||
reader->setQtVersion(qtVersion);
|
reader->setQtVersion(qtVersion);
|
||||||
|
|
||||||
// Find out what flags we pass on to qmake, this code is duplicated in the qmake step
|
// Find out what flags we pass on to qmake
|
||||||
QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion->defaultBuildConfig();
|
|
||||||
QtVersion::QmakeBuildConfigs projectBuildConfiguration = QtVersion::QmakeBuildConfig(qt4bc->value("buildConfiguration").toInt());
|
|
||||||
QStringList addedUserConfigArguments;
|
QStringList addedUserConfigArguments;
|
||||||
QStringList removedUserConfigArguments;
|
QStringList removedUserConfigArguments;
|
||||||
if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll))
|
qt4bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
|
||||||
removedUserConfigArguments << "debug_and_release";
|
reader->setConfigCommandLineArguments(addedUserConfigArguments, removedUserConfigArguments);
|
||||||
if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll))
|
|
||||||
addedUserConfigArguments << "debug_and_release";
|
|
||||||
if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "release";
|
|
||||||
if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "debug";
|
|
||||||
|
|
||||||
reader->setUserConfigCmdArgs(addedUserConfigArguments, removedUserConfigArguments);
|
|
||||||
|
|
||||||
if (!reader->readProFile(m_proFilePath)) {
|
if (!reader->readProFile(m_proFilePath)) {
|
||||||
delete reader;
|
delete reader;
|
||||||
@@ -157,7 +147,7 @@ void S60EmulatorRunConfiguration::updateTarget()
|
|||||||
|
|
||||||
QString baseDir = S60Manager::instance()->deviceForQtVersion(qtVersion).epocRoot;
|
QString baseDir = S60Manager::instance()->deviceForQtVersion(qtVersion).epocRoot;
|
||||||
QString qmakeBuildConfig = "urel";
|
QString qmakeBuildConfig = "urel";
|
||||||
if (projectBuildConfiguration & QtVersion::DebugBuild)
|
if (qt4bc->qmakeBuildConfiguration() & QtVersion::DebugBuild)
|
||||||
qmakeBuildConfig = "udeb";
|
qmakeBuildConfig = "udeb";
|
||||||
baseDir += "/epoc32/release/winscw/" + qmakeBuildConfig;
|
baseDir += "/epoc32/release/winscw/" + qmakeBuildConfig;
|
||||||
|
|
||||||
|
@@ -133,7 +133,7 @@ QString Qt4BuildConfiguration::makeCommand() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QTCREATOR_WITH_S60
|
#ifdef QTCREATOR_WITH_S60
|
||||||
static inline QString symbianMakeTarget(QtVersion::QmakeBuildConfig buildConfig,
|
static inline QString symbianMakeTarget(QtVersion::QmakeBuildConfigs buildConfig,
|
||||||
const QString &type)
|
const QString &type)
|
||||||
{
|
{
|
||||||
QString rc = (buildConfig & QtVersion::DebugBuild) ?
|
QString rc = (buildConfig & QtVersion::DebugBuild) ?
|
||||||
@@ -149,8 +149,7 @@ QString Qt4BuildConfiguration::defaultMakeTarget() const
|
|||||||
ToolChain *tc = toolChain();
|
ToolChain *tc = toolChain();
|
||||||
if (!tc)
|
if (!tc)
|
||||||
return QString::null;
|
return QString::null;
|
||||||
const QtVersion::QmakeBuildConfig buildConfig
|
const QtVersion::QmakeBuildConfigs buildConfig = qmakeBuildConfiguration();
|
||||||
= QtVersion::QmakeBuildConfig(value("buildConfiguration").toInt());
|
|
||||||
|
|
||||||
switch (tc->type()) {
|
switch (tc->type()) {
|
||||||
case ToolChain::GCCE:
|
case ToolChain::GCCE:
|
||||||
@@ -279,7 +278,7 @@ bool Qt4BuildConfiguration::compareToImportFrom(const QString &workingDirectory)
|
|||||||
// same qtversion
|
// same qtversion
|
||||||
QPair<QtVersion::QmakeBuildConfigs, QStringList> result =
|
QPair<QtVersion::QmakeBuildConfigs, QStringList> result =
|
||||||
QtVersionManager::scanMakeFile(workingDirectory, version->defaultBuildConfig());
|
QtVersionManager::scanMakeFile(workingDirectory, version->defaultBuildConfig());
|
||||||
if (QtVersion::QmakeBuildConfig(value("buildConfiguration").toInt()) == result.first) {
|
if (qmakeBuildConfiguration() == result.first) {
|
||||||
// The QMake Build Configuration are the same,
|
// The QMake Build Configuration are the same,
|
||||||
// now compare arguments lists
|
// now compare arguments lists
|
||||||
// we have to compare without the spec/platform cmd argument
|
// we have to compare without the spec/platform cmd argument
|
||||||
@@ -402,3 +401,26 @@ QString Qt4BuildConfiguration::extractSpecFromArgumentList(const QStringList &li
|
|||||||
return parsedSpec;
|
return parsedSpec;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QtVersion::QmakeBuildConfigs Qt4BuildConfiguration::qmakeBuildConfiguration() const
|
||||||
|
{
|
||||||
|
return QtVersion::QmakeBuildConfigs(value("buildConfiguration").toInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const
|
||||||
|
{
|
||||||
|
QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig();
|
||||||
|
QtVersion::QmakeBuildConfigs userBuildConfiguration = qmakeBuildConfiguration();
|
||||||
|
if (removedUserConfigs) {
|
||||||
|
if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(userBuildConfiguration & QtVersion::BuildAll))
|
||||||
|
(*removedUserConfigs) << "debug_and_release";
|
||||||
|
}
|
||||||
|
if (addedUserConfigs) {
|
||||||
|
if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (userBuildConfiguration & QtVersion::BuildAll))
|
||||||
|
(*addedUserConfigs) << "debug_and_release";
|
||||||
|
if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(userBuildConfiguration & QtVersion::DebugBuild))
|
||||||
|
(*addedUserConfigs) << "release";
|
||||||
|
if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (userBuildConfiguration & QtVersion::DebugBuild))
|
||||||
|
(*addedUserConfigs) << "debug";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -30,13 +30,14 @@
|
|||||||
#ifndef QT4BUILDCONFIGURATION_H
|
#ifndef QT4BUILDCONFIGURATION_H
|
||||||
#define QT4BUILDCONFIGURATION_H
|
#define QT4BUILDCONFIGURATION_H
|
||||||
|
|
||||||
|
#include "qtversionmanager.h"
|
||||||
|
|
||||||
#include <projectexplorer/buildconfiguration.h>
|
#include <projectexplorer/buildconfiguration.h>
|
||||||
#include <projectexplorer/toolchain.h>
|
#include <projectexplorer/toolchain.h>
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
namespace Qt4ProjectManager {
|
||||||
|
|
||||||
class Qt4Project;
|
class Qt4Project;
|
||||||
class QtVersion;
|
|
||||||
class QMakeStep;
|
class QMakeStep;
|
||||||
class MakeStep;
|
class MakeStep;
|
||||||
|
|
||||||
@@ -98,6 +99,9 @@ public:
|
|||||||
static QStringList removeSpecFromArgumentList(const QStringList &old);
|
static QStringList removeSpecFromArgumentList(const QStringList &old);
|
||||||
static QString extractSpecFromArgumentList(const QStringList &list, QString directory, QtVersion *version);
|
static QString extractSpecFromArgumentList(const QStringList &list, QString directory, QtVersion *version);
|
||||||
|
|
||||||
|
QtVersion::QmakeBuildConfigs qmakeBuildConfiguration() const;
|
||||||
|
void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void qtVersionChanged();
|
void qtVersionChanged();
|
||||||
};
|
};
|
||||||
|
@@ -574,21 +574,11 @@ void Qt4RunConfiguration::updateTarget()
|
|||||||
reader->setCumulative(false);
|
reader->setCumulative(false);
|
||||||
reader->setQtVersion(qt4bc->qtVersion());
|
reader->setQtVersion(qt4bc->qtVersion());
|
||||||
|
|
||||||
// Find out what flags we pass on to qmake, this code is duplicated in the qmake step
|
// Find out what flags we pass on to qmake
|
||||||
QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qt4bc->qtVersion()->defaultBuildConfig();
|
|
||||||
QtVersion::QmakeBuildConfigs projectBuildConfiguration = QtVersion::QmakeBuildConfig(qt4bc->value("buildConfiguration").toInt());
|
|
||||||
QStringList addedUserConfigArguments;
|
QStringList addedUserConfigArguments;
|
||||||
QStringList removedUserConfigArguments;
|
QStringList removedUserConfigArguments;
|
||||||
if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll))
|
qt4bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
|
||||||
removedUserConfigArguments << "debug_and_release";
|
reader->setConfigCommandLineArguments(addedUserConfigArguments, removedUserConfigArguments);
|
||||||
if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll))
|
|
||||||
addedUserConfigArguments << "debug_and_release";
|
|
||||||
if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "release";
|
|
||||||
if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (projectBuildConfiguration & QtVersion::DebugBuild))
|
|
||||||
addedUserConfigArguments << "debug";
|
|
||||||
|
|
||||||
reader->setUserConfigCmdArgs(addedUserConfigArguments, removedUserConfigArguments);
|
|
||||||
|
|
||||||
if (!reader->readProFile(m_proFilePath)) {
|
if (!reader->readProFile(m_proFilePath)) {
|
||||||
delete reader;
|
delete reader;
|
||||||
@@ -618,7 +608,7 @@ void Qt4RunConfiguration::updateTarget()
|
|||||||
if (reader->values("CONFIG").contains("debug_and_release_target")) {
|
if (reader->values("CONFIG").contains("debug_and_release_target")) {
|
||||||
//qDebug()<<"reader has debug_and_release_target";
|
//qDebug()<<"reader has debug_and_release_target";
|
||||||
QString qmakeBuildConfig = "release";
|
QString qmakeBuildConfig = "release";
|
||||||
if (projectBuildConfiguration & QtVersion::DebugBuild)
|
if (qt4bc->qmakeBuildConfiguration() & QtVersion::DebugBuild)
|
||||||
qmakeBuildConfig = "debug";
|
qmakeBuildConfig = "debug";
|
||||||
if (!reader->contains("DESTDIR"))
|
if (!reader->contains("DESTDIR"))
|
||||||
m_workingDir += QLatin1Char('/') + qmakeBuildConfig;
|
m_workingDir += QLatin1Char('/') + qmakeBuildConfig;
|
||||||
|
@@ -3068,7 +3068,7 @@ void ProFileEvaluator::setOutputDir(const QString &dir)
|
|||||||
d->m_outputDir = dir;
|
d->m_outputDir = dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProFileEvaluator::setUserConfigCmdArgs(const QStringList &addUserConfigCmdArgs, const QStringList &removeUserConfigCmdArgs)
|
void ProFileEvaluator::setConfigCommandLineArguments(const QStringList &addUserConfigCmdArgs, const QStringList &removeUserConfigCmdArgs)
|
||||||
{
|
{
|
||||||
d->m_addUserConfigCmdArgs = addUserConfigCmdArgs;
|
d->m_addUserConfigCmdArgs = addUserConfigCmdArgs;
|
||||||
d->m_removeUserConfigCmdArgs = removeUserConfigCmdArgs;
|
d->m_removeUserConfigCmdArgs = removeUserConfigCmdArgs;
|
||||||
|
@@ -112,7 +112,7 @@ public:
|
|||||||
|
|
||||||
// -nocache, -cache, -spec, QMAKESPEC
|
// -nocache, -cache, -spec, QMAKESPEC
|
||||||
// -set persistent value
|
// -set persistent value
|
||||||
void setUserConfigCmdArgs(const QStringList &addUserConfigCmdArgs, const QStringList &removeUserConfigCmdArgs);
|
void setConfigCommandLineArguments(const QStringList &addUserConfigCmdArgs, const QStringList &removeUserConfigCmdArgs);
|
||||||
void setParsePreAndPostFiles(bool on); // Default is true
|
void setParsePreAndPostFiles(bool on); // Default is true
|
||||||
|
|
||||||
bool queryProFile(ProFile *pro);
|
bool queryProFile(ProFile *pro);
|
||||||
|
Reference in New Issue
Block a user