forked from qt-creator/qt-creator
qt4buildconfiguration: code cosmetics
Change-Id: I39e60655384798fe5dcfc9d2c7c01747650774bb Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
@@ -54,19 +54,19 @@
|
|||||||
|
|
||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
|
|
||||||
using namespace Qt4ProjectManager;
|
namespace Qt4ProjectManager {
|
||||||
using namespace Qt4ProjectManager::Internal;
|
|
||||||
|
using namespace Internal;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
using namespace QtSupport;
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace {
|
const char QT4_BC_ID[] = "Qt4ProjectManager.Qt4BuildConfiguration";
|
||||||
const char * const QT4_BC_ID("Qt4ProjectManager.Qt4BuildConfiguration");
|
const char USE_SHADOW_BUILD_KEY[] = "Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild";
|
||||||
|
const char BUILD_DIRECTORY_KEY[] = "Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory";
|
||||||
const char * const USE_SHADOW_BUILD_KEY("Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild");
|
const char BUILD_CONFIGURATION_KEY[] = "Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration";
|
||||||
const char * const BUILD_DIRECTORY_KEY("Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory");
|
|
||||||
const char * const BUILD_CONFIGURATION_KEY("Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration");
|
|
||||||
|
|
||||||
enum { debug = 0 };
|
enum { debug = 0 };
|
||||||
}
|
|
||||||
|
|
||||||
Qt4BuildConfiguration::Qt4BuildConfiguration(Target *target) :
|
Qt4BuildConfiguration::Qt4BuildConfiguration(Target *target) :
|
||||||
BuildConfiguration(target, Core::Id(QT4_BC_ID)),
|
BuildConfiguration(target, Core::Id(QT4_BC_ID)),
|
||||||
@@ -122,7 +122,7 @@ bool Qt4BuildConfiguration::fromMap(const QVariantMap &map)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_shadowBuild = map.value(QLatin1String(USE_SHADOW_BUILD_KEY), true).toBool();
|
m_shadowBuild = map.value(QLatin1String(USE_SHADOW_BUILD_KEY), true).toBool();
|
||||||
m_qmakeBuildConfiguration = QtSupport::BaseQtVersion::QmakeBuildConfigs(map.value(QLatin1String(BUILD_CONFIGURATION_KEY)).toInt());
|
m_qmakeBuildConfiguration = BaseQtVersion::QmakeBuildConfigs(map.value(QLatin1String(BUILD_CONFIGURATION_KEY)).toInt());
|
||||||
m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY), defaultShadowBuildDirectory()).toString();
|
m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY), defaultShadowBuildDirectory()).toString();
|
||||||
|
|
||||||
m_lastEmmitedBuildDirectory = buildDirectory();
|
m_lastEmmitedBuildDirectory = buildDirectory();
|
||||||
@@ -159,9 +159,9 @@ void Qt4BuildConfiguration::emitBuildDirectoryChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::Environment Qt4BuildConfiguration::baseEnvironment() const
|
Environment Qt4BuildConfiguration::baseEnvironment() const
|
||||||
{
|
{
|
||||||
Utils::Environment env = BuildConfiguration::baseEnvironment();
|
Environment env = BuildConfiguration::baseEnvironment();
|
||||||
target()->profile()->addToEnvironment(env);
|
target()->profile()->addToEnvironment(env);
|
||||||
return env;
|
return env;
|
||||||
}
|
}
|
||||||
@@ -193,7 +193,7 @@ QString Qt4BuildConfiguration::rawBuildDirectory() const
|
|||||||
return workingDirectory;
|
return workingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// returns the build directory
|
/// Returns the build directory.
|
||||||
QString Qt4BuildConfiguration::buildDirectory() const
|
QString Qt4BuildConfiguration::buildDirectory() const
|
||||||
{
|
{
|
||||||
return QDir::cleanPath(environment().expandVariables(rawBuildDirectory()));
|
return QDir::cleanPath(environment().expandVariables(rawBuildDirectory()));
|
||||||
@@ -201,14 +201,14 @@ QString Qt4BuildConfiguration::buildDirectory() const
|
|||||||
|
|
||||||
bool Qt4BuildConfiguration::supportsShadowBuilds()
|
bool Qt4BuildConfiguration::supportsShadowBuilds()
|
||||||
{
|
{
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target()->profile());
|
BaseQtVersion *version = QtProfileInformation::qtVersion(target()->profile());
|
||||||
return !version || version->supportsShadowBuilds();
|
return !version || version->supportsShadowBuilds();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// If only a sub tree should be build this function returns which sub node
|
/// If only a sub tree should be build this function returns which sub node
|
||||||
/// should be build
|
/// should be build
|
||||||
/// \see Qt4BuildConfiguration::setSubNodeBuild
|
/// \see Qt4BuildConfiguration::setSubNodeBuild
|
||||||
Qt4ProjectManager::Qt4ProFileNode *Qt4BuildConfiguration::subNodeBuild() const
|
Qt4ProFileNode *Qt4BuildConfiguration::subNodeBuild() const
|
||||||
{
|
{
|
||||||
return m_subNodeBuild;
|
return m_subNodeBuild;
|
||||||
}
|
}
|
||||||
@@ -219,7 +219,7 @@ Qt4ProjectManager::Qt4ProFileNode *Qt4BuildConfiguration::subNodeBuild() const
|
|||||||
/// calling BuildManager::buildProject( BuildConfiguration * )
|
/// calling BuildManager::buildProject( BuildConfiguration * )
|
||||||
/// and reset immediately afterwards
|
/// and reset immediately afterwards
|
||||||
/// That is m_subNodesBuild is set only temporarly
|
/// That is m_subNodesBuild is set only temporarly
|
||||||
void Qt4BuildConfiguration::setSubNodeBuild(Qt4ProjectManager::Qt4ProFileNode *node)
|
void Qt4BuildConfiguration::setSubNodeBuild(Qt4ProFileNode *node)
|
||||||
{
|
{
|
||||||
m_subNodeBuild = node;
|
m_subNodeBuild = node;
|
||||||
}
|
}
|
||||||
@@ -254,7 +254,7 @@ QString Qt4BuildConfiguration::shadowBuildDirectory() const
|
|||||||
|
|
||||||
void Qt4BuildConfiguration::setShadowBuildAndDirectory(bool shadowBuild, const QString &buildDirectory)
|
void Qt4BuildConfiguration::setShadowBuildAndDirectory(bool shadowBuild, const QString &buildDirectory)
|
||||||
{
|
{
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target()->profile());
|
BaseQtVersion *version = QtProfileInformation::qtVersion(target()->profile());
|
||||||
QString directoryToSet = buildDirectory;
|
QString directoryToSet = buildDirectory;
|
||||||
bool toSet = (shadowBuild && version && version->isValid() && version->supportsShadowBuilds());
|
bool toSet = (shadowBuild && version && version->isValid() && version->supportsShadowBuilds());
|
||||||
if (m_shadowBuild == toSet && m_buildDirectory == directoryToSet)
|
if (m_shadowBuild == toSet && m_buildDirectory == directoryToSet)
|
||||||
@@ -270,8 +270,8 @@ void Qt4BuildConfiguration::setShadowBuildAndDirectory(bool shadowBuild, const Q
|
|||||||
|
|
||||||
QString Qt4BuildConfiguration::defaultMakeTarget() const
|
QString Qt4BuildConfiguration::defaultMakeTarget() const
|
||||||
{
|
{
|
||||||
ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(target()->profile());
|
ToolChain *tc = ToolChainProfileInformation::toolChain(target()->profile());
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target()->profile());
|
BaseQtVersion *version = QtProfileInformation::qtVersion(target()->profile());
|
||||||
if (!tc || !version)
|
if (!tc || !version)
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
@@ -283,12 +283,12 @@ QString Qt4BuildConfiguration::makefile() const
|
|||||||
return static_cast<Qt4Project *>(target()->project())->rootQt4ProjectNode()->makefile();
|
return static_cast<Qt4Project *>(target()->project())->rootQt4ProjectNode()->makefile();
|
||||||
}
|
}
|
||||||
|
|
||||||
QtSupport::BaseQtVersion::QmakeBuildConfigs Qt4BuildConfiguration::qmakeBuildConfiguration() const
|
BaseQtVersion::QmakeBuildConfigs Qt4BuildConfiguration::qmakeBuildConfiguration() const
|
||||||
{
|
{
|
||||||
return m_qmakeBuildConfiguration;
|
return m_qmakeBuildConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildConfiguration::setQMakeBuildConfiguration(QtSupport::BaseQtVersion::QmakeBuildConfigs config)
|
void Qt4BuildConfiguration::setQMakeBuildConfiguration(BaseQtVersion::QmakeBuildConfigs config)
|
||||||
{
|
{
|
||||||
if (m_qmakeBuildConfiguration == config)
|
if (m_qmakeBuildConfiguration == config)
|
||||||
return;
|
return;
|
||||||
@@ -315,17 +315,18 @@ void Qt4BuildConfiguration::emitQMakeBuildConfigurationChanged()
|
|||||||
QStringList Qt4BuildConfiguration::configCommandLineArguments() const
|
QStringList Qt4BuildConfiguration::configCommandLineArguments() const
|
||||||
{
|
{
|
||||||
QStringList result;
|
QStringList result;
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target()->profile());
|
BaseQtVersion *version = QtProfileInformation::qtVersion(target()->profile());
|
||||||
QtSupport::BaseQtVersion::QmakeBuildConfigs defaultBuildConfiguration = version ? version->defaultBuildConfig() : (QtSupport::BaseQtVersion::DebugBuild | QtSupport::BaseQtVersion::BuildAll);
|
BaseQtVersion::QmakeBuildConfigs defaultBuildConfiguration =
|
||||||
QtSupport::BaseQtVersion::QmakeBuildConfigs userBuildConfiguration = m_qmakeBuildConfiguration;
|
version ? version->defaultBuildConfig() : (BaseQtVersion::DebugBuild | BaseQtVersion::BuildAll);
|
||||||
if ((defaultBuildConfiguration & QtSupport::BaseQtVersion::BuildAll) && !(userBuildConfiguration & QtSupport::BaseQtVersion::BuildAll))
|
BaseQtVersion::QmakeBuildConfigs userBuildConfiguration = m_qmakeBuildConfiguration;
|
||||||
|
if ((defaultBuildConfiguration & BaseQtVersion::BuildAll) && !(userBuildConfiguration & BaseQtVersion::BuildAll))
|
||||||
result << QLatin1String("CONFIG-=debug_and_release");
|
result << QLatin1String("CONFIG-=debug_and_release");
|
||||||
|
|
||||||
if (!(defaultBuildConfiguration & QtSupport::BaseQtVersion::BuildAll) && (userBuildConfiguration & QtSupport::BaseQtVersion::BuildAll))
|
if (!(defaultBuildConfiguration & BaseQtVersion::BuildAll) && (userBuildConfiguration & BaseQtVersion::BuildAll))
|
||||||
result << QLatin1String("CONFIG+=debug_and_release");
|
result << QLatin1String("CONFIG+=debug_and_release");
|
||||||
if ((defaultBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild) && !(userBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild))
|
if ((defaultBuildConfiguration & BaseQtVersion::DebugBuild) && !(userBuildConfiguration & BaseQtVersion::DebugBuild))
|
||||||
result << QLatin1String("CONFIG+=release");
|
result << QLatin1String("CONFIG+=release");
|
||||||
if (!(defaultBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild) && (userBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild))
|
if (!(defaultBuildConfiguration & BaseQtVersion::DebugBuild) && (userBuildConfiguration & BaseQtVersion::DebugBuild))
|
||||||
result << QLatin1String("CONFIG+=debug");
|
result << QLatin1String("CONFIG+=debug");
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -352,19 +353,19 @@ MakeStep *Qt4BuildConfiguration::makeStep() const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns true if both are equal
|
// Returns true if both are equal.
|
||||||
Qt4BuildConfiguration::MakefileState Qt4BuildConfiguration::compareToImportFrom(const QString &makefile)
|
Qt4BuildConfiguration::MakefileState Qt4BuildConfiguration::compareToImportFrom(const QString &makefile)
|
||||||
{
|
{
|
||||||
QMakeStep *qs = qmakeStep();
|
QMakeStep *qs = qmakeStep();
|
||||||
if (QFileInfo(makefile).exists() && qs) {
|
if (QFileInfo(makefile).exists() && qs) {
|
||||||
Utils::FileName qmakePath = QtSupport::QtVersionManager::findQMakeBinaryFromMakefile(makefile);
|
FileName qmakePath = QtVersionManager::findQMakeBinaryFromMakefile(makefile);
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target()->profile());
|
BaseQtVersion *version = QtProfileInformation::qtVersion(target()->profile());
|
||||||
if (!version)
|
if (!version)
|
||||||
return MakefileForWrongProject;
|
return MakefileForWrongProject;
|
||||||
if (version->qmakeCommand() == qmakePath) {
|
if (version->qmakeCommand() == qmakePath) {
|
||||||
// same qtversion
|
// same qtversion
|
||||||
QPair<QtSupport::BaseQtVersion::QmakeBuildConfigs, QString> result =
|
QPair<BaseQtVersion::QmakeBuildConfigs, QString> result =
|
||||||
QtSupport::QtVersionManager::scanMakeFile(makefile, version->defaultBuildConfig());
|
QtVersionManager::scanMakeFile(makefile, version->defaultBuildConfig());
|
||||||
if (qmakeBuildConfiguration() == 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
|
||||||
@@ -377,17 +378,17 @@ Qt4BuildConfiguration::MakefileState Qt4BuildConfiguration::compareToImportFrom(
|
|||||||
// are not interested in), splitting them up into individual strings:
|
// are not interested in), splitting them up into individual strings:
|
||||||
extractSpecFromArguments(&userArgs, workingDirectory, version, &actualArgs);
|
extractSpecFromArguments(&userArgs, workingDirectory, version, &actualArgs);
|
||||||
actualArgs = qs->deducedArguments() + actualArgs + qs->deducedArgumentsAfter();
|
actualArgs = qs->deducedArguments() + actualArgs + qs->deducedArgumentsAfter();
|
||||||
Utils::FileName actualSpec = qs->mkspec();
|
FileName actualSpec = qs->mkspec();
|
||||||
|
|
||||||
QString qmakeArgs = result.second;
|
QString qmakeArgs = result.second;
|
||||||
QStringList parsedArgs;
|
QStringList parsedArgs;
|
||||||
Utils::FileName parsedSpec = extractSpecFromArguments(&qmakeArgs, workingDirectory, version, &parsedArgs);
|
FileName parsedSpec = extractSpecFromArguments(&qmakeArgs, workingDirectory, version, &parsedArgs);
|
||||||
|
|
||||||
if (debug) {
|
if (debug) {
|
||||||
qDebug()<<"Actual args:"<<actualArgs;
|
qDebug() << "Actual args:" << actualArgs;
|
||||||
qDebug()<<"Parsed args:"<<parsedArgs;
|
qDebug() << "Parsed args:" << parsedArgs;
|
||||||
qDebug()<<"Actual spec:"<<actualSpec.toString();
|
qDebug() << "Actual spec:" << actualSpec.toString();
|
||||||
qDebug()<<"Parsed spec:"<<parsedSpec.toString();
|
qDebug() << "Parsed spec:" << parsedSpec.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Comparing the sorted list is obviously wrong
|
// Comparing the sorted list is obviously wrong
|
||||||
@@ -411,20 +412,22 @@ Qt4BuildConfiguration::MakefileState Qt4BuildConfiguration::compareToImportFrom(
|
|||||||
if (actualSpec == parsedSpec)
|
if (actualSpec == parsedSpec)
|
||||||
return MakefileMatches;
|
return MakefileMatches;
|
||||||
// Actual spec is the default one
|
// Actual spec is the default one
|
||||||
// qDebug()<<"AS vs VS"<<actualSpec<<version->mkspec();
|
// qDebug() << "AS vs VS" << actualSpec << version->mkspec();
|
||||||
if ((actualSpec == version->mkspec() || actualSpec == Utils::FileName::fromString(QLatin1String("default")))
|
if ((actualSpec == version->mkspec() || actualSpec == FileName::fromString(QLatin1String("default")))
|
||||||
&& (parsedSpec == version->mkspec() || parsedSpec == Utils::FileName::fromString(QLatin1String("default")) || parsedSpec.isEmpty()))
|
&& (parsedSpec == version->mkspec() || parsedSpec == FileName::fromString(QLatin1String("default")) || parsedSpec.isEmpty()))
|
||||||
return MakefileMatches;
|
return MakefileMatches;
|
||||||
}
|
}
|
||||||
return MakefileIncompatible;
|
return MakefileIncompatible;
|
||||||
} else {
|
} else {
|
||||||
if (debug)
|
if (debug)
|
||||||
qDebug()<<"different qmake buildconfigurations buildconfiguration:"<<qmakeBuildConfiguration()<<" Makefile:"<<result.first;
|
qDebug() << "different qmake buildconfigurations buildconfiguration:"
|
||||||
|
<< qmakeBuildConfiguration() << " Makefile:" << result.first;
|
||||||
return MakefileIncompatible;
|
return MakefileIncompatible;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (debug)
|
if (debug)
|
||||||
qDebug() << "different Qt versions, buildconfiguration:" << version->qmakeCommand().toString() << " Makefile:"<< qmakePath.toString();
|
qDebug() << "different Qt versions, buildconfiguration:" << version->qmakeCommand().toString()
|
||||||
|
<< " Makefile:"<< qmakePath.toString();
|
||||||
return MakefileForWrongProject;
|
return MakefileForWrongProject;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -434,7 +437,7 @@ Qt4BuildConfiguration::MakefileState Qt4BuildConfiguration::compareToImportFrom(
|
|||||||
bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
|
bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
|
||||||
{
|
{
|
||||||
bool removedArgument = false;
|
bool removedArgument = false;
|
||||||
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
|
for (QtcProcess::ArgIterator ait(args); ait.next(); ) {
|
||||||
const QString arg = ait.value();
|
const QString arg = ait.value();
|
||||||
if (arg.contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))
|
if (arg.contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))
|
||||||
|| arg.contains(QLatin1String(Constants::QMAKEVAR_DECLARATIVE_DEBUG4))
|
|| arg.contains(QLatin1String(Constants::QMAKEVAR_DECLARATIVE_DEBUG4))
|
||||||
@@ -446,21 +449,21 @@ bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
|
|||||||
return removedArgument;
|
return removedArgument;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FileName Qt4BuildConfiguration::extractSpecFromArguments(QString *args,
|
FileName Qt4BuildConfiguration::extractSpecFromArguments(QString *args,
|
||||||
const QString &directory, const QtSupport::BaseQtVersion *version,
|
const QString &directory, const BaseQtVersion *version,
|
||||||
QStringList *outArgs)
|
QStringList *outArgs)
|
||||||
{
|
{
|
||||||
Utils::FileName parsedSpec;
|
FileName parsedSpec;
|
||||||
|
|
||||||
bool ignoreNext = false;
|
bool ignoreNext = false;
|
||||||
bool nextIsSpec = false;
|
bool nextIsSpec = false;
|
||||||
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
|
for (QtcProcess::ArgIterator ait(args); ait.next(); ) {
|
||||||
if (ignoreNext) {
|
if (ignoreNext) {
|
||||||
ignoreNext = false;
|
ignoreNext = false;
|
||||||
ait.deleteArg();
|
ait.deleteArg();
|
||||||
} else if (nextIsSpec) {
|
} else if (nextIsSpec) {
|
||||||
nextIsSpec = false;
|
nextIsSpec = false;
|
||||||
parsedSpec = Utils::FileName::fromUserInput(ait.value());
|
parsedSpec = FileName::fromUserInput(ait.value());
|
||||||
ait.deleteArg();
|
ait.deleteArg();
|
||||||
} else if (ait.value() == QLatin1String("-spec") || ait.value() == QLatin1String("-platform")) {
|
} else if (ait.value() == QLatin1String("-spec") || ait.value() == QLatin1String("-platform")) {
|
||||||
nextIsSpec = true;
|
nextIsSpec = true;
|
||||||
@@ -480,9 +483,9 @@ Utils::FileName Qt4BuildConfiguration::extractSpecFromArguments(QString *args,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (parsedSpec.isEmpty())
|
if (parsedSpec.isEmpty())
|
||||||
return Utils::FileName();
|
return FileName();
|
||||||
|
|
||||||
Utils::FileName baseMkspecDir = Utils::FileName::fromUserInput(
|
FileName baseMkspecDir = FileName::fromUserInput(
|
||||||
version->qmakeProperty("QT_HOST_DATA") + QLatin1String("/mkspecs"));
|
version->qmakeProperty("QT_HOST_DATA") + QLatin1String("/mkspecs"));
|
||||||
|
|
||||||
// if the path is relative it can be
|
// if the path is relative it can be
|
||||||
@@ -492,23 +495,23 @@ Utils::FileName Qt4BuildConfiguration::extractSpecFromArguments(QString *args,
|
|||||||
// for the other one we don't need to do anything
|
// for the other one we don't need to do anything
|
||||||
if (parsedSpec.toFileInfo().isRelative()) {
|
if (parsedSpec.toFileInfo().isRelative()) {
|
||||||
if (QFileInfo(directory + QLatin1Char('/') + parsedSpec.toString()).exists()) {
|
if (QFileInfo(directory + QLatin1Char('/') + parsedSpec.toString()).exists()) {
|
||||||
parsedSpec = Utils::FileName::fromUserInput(directory + QLatin1Char('/') + parsedSpec.toString());
|
parsedSpec = FileName::fromUserInput(directory + QLatin1Char('/') + parsedSpec.toString());
|
||||||
} else {
|
} else {
|
||||||
parsedSpec = Utils::FileName::fromUserInput(baseMkspecDir.toString() + QLatin1Char('/') + parsedSpec.toString());
|
parsedSpec = FileName::fromUserInput(baseMkspecDir.toString() + QLatin1Char('/') + parsedSpec.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QFileInfo f2 = parsedSpec.toFileInfo();
|
QFileInfo f2 = parsedSpec.toFileInfo();
|
||||||
while (f2.isSymLink()) {
|
while (f2.isSymLink()) {
|
||||||
parsedSpec = Utils::FileName::fromString(f2.symLinkTarget());
|
parsedSpec = FileName::fromString(f2.symLinkTarget());
|
||||||
f2.setFile(parsedSpec.toString());
|
f2.setFile(parsedSpec.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parsedSpec.isChildOf(baseMkspecDir)) {
|
if (parsedSpec.isChildOf(baseMkspecDir)) {
|
||||||
parsedSpec = parsedSpec.relativeChildPath(baseMkspecDir);
|
parsedSpec = parsedSpec.relativeChildPath(baseMkspecDir);
|
||||||
} else {
|
} else {
|
||||||
Utils::FileName sourceMkSpecPath = Utils::FileName::fromString(version->sourcePath().toString()
|
FileName sourceMkSpecPath = FileName::fromString(version->sourcePath().toString()
|
||||||
+ QLatin1String("/mkspecs"));
|
+ QLatin1String("/mkspecs"));
|
||||||
if (parsedSpec.isChildOf(sourceMkSpecPath)) {
|
if (parsedSpec.isChildOf(sourceMkSpecPath)) {
|
||||||
parsedSpec = parsedSpec.relativeChildPath(sourceMkSpecPath);
|
parsedSpec = parsedSpec.relativeChildPath(sourceMkSpecPath);
|
||||||
}
|
}
|
||||||
@@ -516,7 +519,7 @@ Utils::FileName Qt4BuildConfiguration::extractSpecFromArguments(QString *args,
|
|||||||
return parsedSpec;
|
return parsedSpec;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IOutputParser *Qt4BuildConfiguration::createOutputParser() const
|
IOutputParser *Qt4BuildConfiguration::createOutputParser() const
|
||||||
{
|
{
|
||||||
ToolChain *tc = ToolChainProfileInformation::toolChain(target()->profile());
|
ToolChain *tc = ToolChainProfileInformation::toolChain(target()->profile());
|
||||||
return tc ? tc->outputParser() : 0;
|
return tc ? tc->outputParser() : 0;
|
||||||
@@ -547,11 +550,11 @@ void Qt4BuildConfiguration::setEnabled(bool enabled)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Qt4BuildConfigurationFactory::Qt4BuildConfigurationFactory(QObject *parent) :
|
Qt4BuildConfigurationFactory::Qt4BuildConfigurationFactory(QObject *parent) :
|
||||||
ProjectExplorer::IBuildConfigurationFactory(parent)
|
IBuildConfigurationFactory(parent)
|
||||||
{
|
{
|
||||||
update();
|
update();
|
||||||
|
|
||||||
QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
|
QtVersionManager *vm = QtVersionManager::instance();
|
||||||
connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
|
connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
|
||||||
this, SLOT(update()));
|
this, SLOT(update()));
|
||||||
}
|
}
|
||||||
@@ -593,12 +596,12 @@ bool Qt4BuildConfigurationFactory::canCreate(const Target *parent, const Core::I
|
|||||||
return id == QT4_BC_ID;
|
return id == QT4_BC_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id, const QString &name)
|
BuildConfiguration *Qt4BuildConfigurationFactory::create(Target *parent, const Core::Id id, const QString &name)
|
||||||
{
|
{
|
||||||
if (!canCreate(parent, id))
|
if (!canCreate(parent, id))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(parent->profile());
|
BaseQtVersion *version = QtProfileInformation::qtVersion(parent->profile());
|
||||||
Q_ASSERT(version);
|
Q_ASSERT(version);
|
||||||
|
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
@@ -625,7 +628,7 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target
|
|||||||
if (buildConfigurationName != version->displayName())
|
if (buildConfigurationName != version->displayName())
|
||||||
customSecondName = tr("%1 Release").arg(buildConfigurationName);
|
customSecondName = tr("%1 Release").arg(buildConfigurationName);
|
||||||
|
|
||||||
if (!(version->defaultBuildConfig() & QtSupport::BaseQtVersion::DebugBuild)) {
|
if (!(version->defaultBuildConfig() & BaseQtVersion::DebugBuild)) {
|
||||||
qSwap(defaultFirstName, defaultSecondName);
|
qSwap(defaultFirstName, defaultSecondName);
|
||||||
qSwap(customFirstName, customSecondName);
|
qSwap(customFirstName, customSecondName);
|
||||||
}
|
}
|
||||||
@@ -635,12 +638,12 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target
|
|||||||
version->defaultBuildConfig(), QString(), QString(), false);
|
version->defaultBuildConfig(), QString(), QString(), false);
|
||||||
parent->addBuildConfiguration(
|
parent->addBuildConfiguration(
|
||||||
Qt4BuildConfiguration::setup(parent, defaultSecondName, customSecondName,
|
Qt4BuildConfiguration::setup(parent, defaultSecondName, customSecondName,
|
||||||
(version->defaultBuildConfig() ^ QtSupport::BaseQtVersion::DebugBuild),
|
(version->defaultBuildConfig() ^ BaseQtVersion::DebugBuild),
|
||||||
QString(), QString(), false));
|
QString(), QString(), false));
|
||||||
return bc;
|
return bc;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Qt4BuildConfigurationFactory::canClone(const Target *parent, ProjectExplorer::BuildConfiguration *source) const
|
bool Qt4BuildConfigurationFactory::canClone(const Target *parent, BuildConfiguration *source) const
|
||||||
{
|
{
|
||||||
return canHandle(parent) && qobject_cast<Qt4BuildConfiguration *>(source);
|
return canHandle(parent) && qobject_cast<Qt4BuildConfiguration *>(source);
|
||||||
}
|
}
|
||||||
@@ -671,20 +674,20 @@ BuildConfiguration *Qt4BuildConfigurationFactory::restore(Target *parent, const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<BuildConfigurationInfo> Qt4BuildConfigurationFactory::availableBuildConfigurations(const ProjectExplorer::Profile *p,
|
QList<BuildConfigurationInfo> Qt4BuildConfigurationFactory::availableBuildConfigurations(const Profile *p,
|
||||||
const QString &proFilePath)
|
const QString &proFilePath)
|
||||||
{
|
{
|
||||||
QList<BuildConfigurationInfo> infoList;
|
QList<BuildConfigurationInfo> infoList;
|
||||||
|
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(p);
|
BaseQtVersion *version = QtProfileInformation::qtVersion(p);
|
||||||
if (!version || !version->isValid())
|
if (!version || !version->isValid())
|
||||||
return infoList;
|
return infoList;
|
||||||
QtSupport::BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();
|
BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();
|
||||||
BuildConfigurationInfo info = BuildConfigurationInfo(config, QString(), QString(), false);
|
BuildConfigurationInfo info = BuildConfigurationInfo(config, QString(), QString(), false);
|
||||||
info.directory = Qt4Project::shadowBuildDirectory(proFilePath, p, buildConfigurationDisplayName(info));
|
info.directory = Qt4Project::shadowBuildDirectory(proFilePath, p, buildConfigurationDisplayName(info));
|
||||||
infoList.append(info);
|
infoList.append(info);
|
||||||
|
|
||||||
info.buildConfig = config ^ QtSupport::BaseQtVersion::DebugBuild;
|
info.buildConfig = config ^ BaseQtVersion::DebugBuild;
|
||||||
info.directory = Qt4Project::shadowBuildDirectory(proFilePath, p, buildConfigurationDisplayName(info));
|
info.directory = Qt4Project::shadowBuildDirectory(proFilePath, p, buildConfigurationDisplayName(info));
|
||||||
infoList.append(info);
|
infoList.append(info);
|
||||||
return infoList;
|
return infoList;
|
||||||
@@ -693,7 +696,7 @@ QList<BuildConfigurationInfo> Qt4BuildConfigurationFactory::availableBuildConfig
|
|||||||
// Return name of a build configuration.
|
// Return name of a build configuration.
|
||||||
QString Qt4BuildConfigurationFactory::buildConfigurationDisplayName(const BuildConfigurationInfo &info)
|
QString Qt4BuildConfigurationFactory::buildConfigurationDisplayName(const BuildConfigurationInfo &info)
|
||||||
{
|
{
|
||||||
return (info.buildConfig & QtSupport::BaseQtVersion::DebugBuild) ?
|
return (info.buildConfig & BaseQtVersion::DebugBuild) ?
|
||||||
//: Name of a debug build configuration to created by a project wizard. We recommend not translating it.
|
//: Name of a debug build configuration to created by a project wizard. We recommend not translating it.
|
||||||
tr("Debug") :
|
tr("Debug") :
|
||||||
//: Name of a release build configuration to be created by a project wizard. We recommend not translating it.
|
//: Name of a release build configuration to be created by a project wizard. We recommend not translating it.
|
||||||
@@ -702,7 +705,7 @@ QString Qt4BuildConfigurationFactory::buildConfigurationDisplayName(const BuildC
|
|||||||
|
|
||||||
BuildConfiguration::BuildType Qt4BuildConfiguration::buildType() const
|
BuildConfiguration::BuildType Qt4BuildConfiguration::buildType() const
|
||||||
{
|
{
|
||||||
if (qmakeBuildConfiguration() & QtSupport::BaseQtVersion::DebugBuild)
|
if (qmakeBuildConfiguration() & BaseQtVersion::DebugBuild)
|
||||||
return Debug;
|
return Debug;
|
||||||
else
|
else
|
||||||
return Release;
|
return Release;
|
||||||
@@ -710,21 +713,19 @@ BuildConfiguration::BuildType Qt4BuildConfiguration::buildType() const
|
|||||||
|
|
||||||
Qt4BuildConfiguration *Qt4BuildConfiguration::setup(Target *t, QString defaultDisplayName,
|
Qt4BuildConfiguration *Qt4BuildConfiguration::setup(Target *t, QString defaultDisplayName,
|
||||||
QString displayName,
|
QString displayName,
|
||||||
QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
|
BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
|
||||||
QString additionalArguments, QString directory,
|
QString additionalArguments, QString directory,
|
||||||
bool importing)
|
bool importing)
|
||||||
{
|
{
|
||||||
bool debug = qmakeBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild;
|
bool debug = qmakeBuildConfiguration & BaseQtVersion::DebugBuild;
|
||||||
|
|
||||||
// Add the buildconfiguration
|
// Add the build configuration.
|
||||||
Qt4BuildConfiguration *bc = new Qt4BuildConfiguration(t);
|
Qt4BuildConfiguration *bc = new Qt4BuildConfiguration(t);
|
||||||
bc->setDefaultDisplayName(defaultDisplayName);
|
bc->setDefaultDisplayName(defaultDisplayName);
|
||||||
bc->setDisplayName(displayName);
|
bc->setDisplayName(displayName);
|
||||||
|
|
||||||
ProjectExplorer::BuildStepList *buildSteps =
|
BuildStepList *buildSteps = bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD));
|
||||||
bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD));
|
BuildStepList *cleanSteps = bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
|
||||||
ProjectExplorer::BuildStepList *cleanSteps =
|
|
||||||
bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
|
|
||||||
Q_ASSERT(buildSteps);
|
Q_ASSERT(buildSteps);
|
||||||
Q_ASSERT(cleanSteps);
|
Q_ASSERT(cleanSteps);
|
||||||
|
|
||||||
@@ -734,7 +735,7 @@ Qt4BuildConfiguration *Qt4BuildConfiguration::setup(Target *t, QString defaultDi
|
|||||||
MakeStep *makeStep = new MakeStep(buildSteps);
|
MakeStep *makeStep = new MakeStep(buildSteps);
|
||||||
buildSteps->insertStep(1, makeStep);
|
buildSteps->insertStep(1, makeStep);
|
||||||
|
|
||||||
MakeStep* cleanStep = new MakeStep(cleanSteps);
|
MakeStep *cleanStep = new MakeStep(cleanSteps);
|
||||||
cleanStep->setClean(true);
|
cleanStep->setClean(true);
|
||||||
cleanStep->setUserArguments(QLatin1String("clean"));
|
cleanStep->setUserArguments(QLatin1String("clean"));
|
||||||
cleanSteps->insertStep(0, cleanStep);
|
cleanSteps->insertStep(0, cleanStep);
|
||||||
@@ -746,8 +747,8 @@ Qt4BuildConfiguration *Qt4BuildConfiguration::setup(Target *t, QString defaultDi
|
|||||||
if (importing)
|
if (importing)
|
||||||
qmakeStep->setLinkQmlDebuggingLibrary(enableQmlDebugger);
|
qmakeStep->setLinkQmlDebuggingLibrary(enableQmlDebugger);
|
||||||
|
|
||||||
// set some options for qmake and make
|
// Set some options for qmake and make.
|
||||||
if (qmakeBuildConfiguration & QtSupport::BaseQtVersion::BuildAll) // debug_and_release => explicit targets
|
if (qmakeBuildConfiguration & BaseQtVersion::BuildAll) // debug_and_release => explicit targets
|
||||||
makeStep->setUserArguments(debug ? QLatin1String("debug") : QLatin1String("release"));
|
makeStep->setUserArguments(debug ? QLatin1String("debug") : QLatin1String("release"));
|
||||||
|
|
||||||
bc->setQMakeBuildConfiguration(qmakeBuildConfiguration);
|
bc->setQMakeBuildConfiguration(qmakeBuildConfiguration);
|
||||||
@@ -757,3 +758,5 @@ Qt4BuildConfiguration *Qt4BuildConfiguration::setup(Target *t, QString defaultDi
|
|||||||
|
|
||||||
return bc;
|
return bc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Qt4ProjectManager
|
||||||
|
Reference in New Issue
Block a user