From abbfc62f034db2991a24e8183bff2318a74bf519 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Tue, 1 Nov 2011 17:19:30 +0100 Subject: [PATCH] Move mkspec policy into the Qt4 targets For embedded we do not want to override the mkspec as used in the Qt version since that was most likely tweaked to work with the tool chain selected. In a generic desktop target we want to be able to switch between different compilers of the same ABI. Change-Id: Ib49e54dd15e78c2459b17c552a3c31cb3dce63eb Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> --- src/plugins/qt4projectmanager/qmakestep.cpp | 12 +----------- src/plugins/qt4projectmanager/qt4target.cpp | 15 +++++++++++++++ src/plugins/qt4projectmanager/qt4target.h | 14 ++++++++------ src/plugins/remotelinux/embeddedlinuxtarget.cpp | 9 +++++++++ src/plugins/remotelinux/embeddedlinuxtarget.h | 2 ++ 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 69d88452fa4..91f656dd8b1 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -457,17 +457,7 @@ QString QMakeStep::mkspec() } } - QtSupport::BaseQtVersion *version = bc->qtVersion(); - // We do not know which abi the Qt version has, so let's stick with the defaults - if (version && version->qtAbis().count() == 1 && version->qtAbis().first().isNull()) - return QString(); - - const QString tcSpec = bc->toolChain() ? bc->toolChain()->mkspec() : QString(); - if (!version) - return tcSpec; - if (!tcSpec.isEmpty() && version->hasMkspec(tcSpec)) - return tcSpec; - return version->mkspec(); + return static_cast<Qt4BaseTarget *>(target())->mkspec(bc); } QVariantMap QMakeStep::toMap() const diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp index f50145771c8..bc0a33c1217 100644 --- a/src/plugins/qt4projectmanager/qt4target.cpp +++ b/src/plugins/qt4projectmanager/qt4target.cpp @@ -310,6 +310,21 @@ ProjectExplorer::ToolChain *Qt4BaseTarget::preferredToolChain(ProjectExplorer::B return tcs.isEmpty() ? 0 : tcs.at(0); } +QString Qt4BaseTarget::mkspec(const Qt4BuildConfiguration *bc) const +{ + QtSupport::BaseQtVersion *version = bc->qtVersion(); + // We do not know which abi the Qt version has, so let's stick with the defaults + if (version && version->qtAbis().count() == 1 && version->qtAbis().first().isNull()) + return QString(); + + const QString tcSpec = bc->toolChain() ? bc->toolChain()->mkspec() : QString(); + if (!version) + return tcSpec; + if (!tcSpec.isEmpty() && version->hasMkspec(tcSpec)) + return tcSpec; + return version->mkspec(); +} + void Qt4BaseTarget::removeUnconfiguredCustomExectutableRunConfigurations() { if (runConfigurations().count()) { diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h index 9f25795aeeb..785b824319c 100644 --- a/src/plugins/qt4projectmanager/qt4target.h +++ b/src/plugins/qt4projectmanager/qt4target.h @@ -78,12 +78,12 @@ public: // This is the same for almost all Qt4Targets // so for now offer a convience function Qt4BuildConfiguration *addQt4BuildConfiguration(QString defaultDisplayName, - QString displayName, - QtSupport::BaseQtVersion *qtversion, - QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, - QString additionalArguments, - QString directory, - bool importing); + QString displayName, + QtSupport::BaseQtVersion *qtversion, + QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, + QString additionalArguments, + QString directory, + bool importing); virtual void createApplicationProFiles() = 0; @@ -92,6 +92,8 @@ public: QList<ProjectExplorer::ToolChain *> possibleToolChains(ProjectExplorer::BuildConfiguration *bc) const; ProjectExplorer::ToolChain *preferredToolChain(ProjectExplorer::BuildConfiguration *) const; + virtual QString mkspec(const Qt4BuildConfiguration *bc) const; + signals: void buildDirectoryInitialized(); /// emitted if the build configuration changed in a way that diff --git a/src/plugins/remotelinux/embeddedlinuxtarget.cpp b/src/plugins/remotelinux/embeddedlinuxtarget.cpp index 22f3782a649..5f0ef5b03ac 100644 --- a/src/plugins/remotelinux/embeddedlinuxtarget.cpp +++ b/src/plugins/remotelinux/embeddedlinuxtarget.cpp @@ -39,6 +39,7 @@ #include <qt4projectmanager/qt4buildconfiguration.h> #include <qt4projectmanager/qt4nodes.h> #include <qt4projectmanager/qt4project.h> +#include <qtsupport/baseqtversion.h> #include <QtCore/QCoreApplication> @@ -72,6 +73,14 @@ QList<ProjectExplorer::RunConfiguration *> EmbeddedLinuxTarget::runConfiguration return result; } +QString EmbeddedLinuxTarget::mkspec(const Qt4ProjectManager::Qt4BuildConfiguration *bc) const +{ + QtSupport::BaseQtVersion *version = bc->qtVersion(); + if (!version) + return QString(); + return version->mkspec(); +} + void EmbeddedLinuxTarget::createApplicationProFiles() { removeUnconfiguredCustomExectutableRunConfigurations(); diff --git a/src/plugins/remotelinux/embeddedlinuxtarget.h b/src/plugins/remotelinux/embeddedlinuxtarget.h index 181a9b5b07f..8ff273a48d8 100644 --- a/src/plugins/remotelinux/embeddedlinuxtarget.h +++ b/src/plugins/remotelinux/embeddedlinuxtarget.h @@ -55,6 +55,8 @@ public: QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Node *n); + QString mkspec(const Qt4ProjectManager::Qt4BuildConfiguration *bc) const; + private: Qt4ProjectManager::Qt4BuildConfigurationFactory *m_buildConfigurationFactory; -- GitLab