From d3d616ea7795b2245cc2e4ab5fad882e7c1d1780 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 7 Dec 2015 14:39:15 +0100 Subject: [PATCH] qmake: Don't generate profile build configurations for Qt4 In Qt4 the force_debug_info flag doesn't work, so we won't actually get a profile build, but only a regular release build. Change-Id: Ie8c31f882b393e35eb525dd12392354ecbbaee75 Task-number: QTCREATORBUG-15457 Reviewed-by: Robert Loehning Reviewed-by: Tobias Hunger --- .../qmakebuildconfiguration.cpp | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index 29492a4c8a0..07a6bfda21d 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -612,17 +612,24 @@ int QmakeBuildConfigurationFactory::priority(const Target *parent) const return canHandle(parent) ? 0 : -1; } +static QList availableBuildTypes(const BaseQtVersion *version) +{ + QList types = {BuildConfiguration::Debug, + BuildConfiguration::Release}; + if (version && version->qtVersion().majorVersion > 4) + types << BuildConfiguration::Profile; + return types; +} + QList QmakeBuildConfigurationFactory::availableBuilds(const Target *parent) const { QList result; const QString projectFilePath = parent->project()->projectFilePath().toString(); - for (BuildConfiguration::BuildType buildType : { BuildConfiguration::Debug, - BuildConfiguration::Profile, - BuildConfiguration::Release }) { - QmakeBuildInfo *info = createBuildInfo(parent->kit(), projectFilePath, - buildType); + foreach (BuildConfiguration::BuildType buildType, + availableBuildTypes(QtSupport::QtKitInformation::qtVersion(parent->kit()))) { + QmakeBuildInfo *info = createBuildInfo(parent->kit(), projectFilePath, buildType); info->displayName.clear(); // ask for a name info->buildDirectory.clear(); // This depends on the displayName result << info; @@ -645,9 +652,10 @@ QList QmakeBuildConfigurationFactory::availableSetups(const Kit *k, QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k); if (!qtVersion || !qtVersion->isValid()) return result; - result << createBuildInfo(k, projectPath, ProjectExplorer::BuildConfiguration::Debug); - result << createBuildInfo(k, projectPath, ProjectExplorer::BuildConfiguration::Profile); - result << createBuildInfo(k, projectPath, ProjectExplorer::BuildConfiguration::Release); + + foreach (BuildConfiguration::BuildType buildType, availableBuildTypes(qtVersion)) + result << createBuildInfo(k, projectPath, buildType); + return result; }