forked from qt-creator/qt-creator
CMakePM: Allow default build configurations for presets
Restrict the build types only if CMAKE_BUILD_TYPE or CMAKE_CONFIGURATION_TYPES cache variables are set. Change-Id: Ib88dcd5d4a0fca86f86e95815edff1116f896324 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -467,9 +467,6 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
||||
const CMakeConfig cache = configurePreset.cacheVariables
|
||||
? configurePreset.cacheVariables.value()
|
||||
: CMakeConfig();
|
||||
data->cmakeBuildType = cache.valueOf("CMAKE_BUILD_TYPE");
|
||||
if (data->cmakeBuildType.isEmpty())
|
||||
data->cmakeBuildType = "Debug";
|
||||
|
||||
data->sysroot = cache.filePathValueOf("CMAKE_SYSROOT");
|
||||
|
||||
@@ -497,7 +494,29 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
||||
// ToolChains:
|
||||
data->toolChains = extractToolChainsFromCache(config);
|
||||
|
||||
result.push_back(static_cast<void *>(data.release()));
|
||||
QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")};
|
||||
if (buildConfigurationTypes.front().isEmpty()) {
|
||||
buildConfigurationTypes.clear();
|
||||
QByteArray buildConfigurationTypesString = cache.valueOf("CMAKE_CONFIGURATION_TYPES");
|
||||
if (!buildConfigurationTypesString.isEmpty()) {
|
||||
buildConfigurationTypes = buildConfigurationTypesString.split(';');
|
||||
} else {
|
||||
for (int type = CMakeBuildConfigurationFactory::BuildTypeDebug;
|
||||
type != CMakeBuildConfigurationFactory::BuildTypeLast;
|
||||
++type) {
|
||||
BuildInfo info = CMakeBuildConfigurationFactory::createBuildInfo(
|
||||
CMakeBuildConfigurationFactory::BuildType(type));
|
||||
buildConfigurationTypes << info.typeName.toUtf8();
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto &buildType : buildConfigurationTypes) {
|
||||
DirectoryData *newData = new DirectoryData(*data);
|
||||
newData->cmakeBuildType = buildType;
|
||||
|
||||
result.emplace_back(newData);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user