forked from qt-creator/qt-creator
CMakePM: Fix build type for multi-configuration generators
Fixes: QTCREATORBUG-26079 Change-Id: Ia849cfcea6f3fb10d791ad32c32413d95aa31569 Reviewed-by: Alp Öz <aoz@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -1012,6 +1012,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
||||
|
||||
const auto qmlDebuggingAspect = addAspect<QtSupport::QmlDebuggingAspect>();
|
||||
qmlDebuggingAspect->setKit(target->kit());
|
||||
setIsMultiConfig(CMakeGeneratorKitAspect::isMultiConfigGenerator(target->kit()));
|
||||
}
|
||||
|
||||
CMakeBuildConfiguration::~CMakeBuildConfiguration()
|
||||
@@ -1334,14 +1335,16 @@ FilePath CMakeBuildConfiguration::sourceDirectory() const
|
||||
|
||||
QString CMakeBuildConfiguration::cmakeBuildType() const
|
||||
{
|
||||
if (!isMultiConfig()) {
|
||||
auto configChanges = configurationChanges();
|
||||
auto it = std::find_if(configChanges.begin(), configChanges.end(),
|
||||
auto setBuildTypeFromConfig = [this](const CMakeConfig &config){
|
||||
auto it = std::find_if(config.begin(), config.end(),
|
||||
[](const CMakeConfigItem &item) { return item.key == "CMAKE_BUILD_TYPE";});
|
||||
if (it != configChanges.end())
|
||||
if (it != config.end())
|
||||
const_cast<CMakeBuildConfiguration*>(this)
|
||||
->setCMakeBuildType(QString::fromUtf8(it->value));
|
||||
}
|
||||
};
|
||||
|
||||
if (!isMultiConfig())
|
||||
setBuildTypeFromConfig(configurationChanges());
|
||||
|
||||
QString cmakeBuildType = aspect<BuildTypeAspect>()->value();
|
||||
|
||||
@@ -1362,10 +1365,8 @@ QString CMakeBuildConfiguration::cmakeBuildType() const
|
||||
config = CMakeConfig::fromArguments(initialCMakeArguments());
|
||||
}
|
||||
|
||||
if (!config.isEmpty() && !isMultiConfig()) {
|
||||
cmakeBuildType = config.stringValueOf("CMAKE_BUILD_TYPE");
|
||||
const_cast<CMakeBuildConfiguration*>(this)->setCMakeBuildType(cmakeBuildType);
|
||||
}
|
||||
if (!config.isEmpty() && !isMultiConfig())
|
||||
setBuildTypeFromConfig(config);
|
||||
|
||||
return cmakeBuildType;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user