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:
@@ -1985,6 +1985,8 @@ CMakeBuildConfigurationFactory::BuildType CMakeBuildConfigurationFactory::buildT
|
||||
return BuildTypeRelWithDebInfo;
|
||||
if (bt == "minsizerel")
|
||||
return BuildTypeMinSizeRel;
|
||||
if (bt == "profile")
|
||||
return BuildTypeProfile;
|
||||
return BuildTypeNone;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"displayName": "MinGW 11.2.0",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release",
|
||||
"CMAKE_PREFIX_PATH": "c:/Qt/6.3.2/mingw_64"
|
||||
},
|
||||
"condition": {
|
||||
@@ -31,7 +30,11 @@
|
||||
"binaryDir": "${sourceDir}/build-${presetName}-release",
|
||||
"displayName": "MinGW 11.2.0 Makefiles",
|
||||
"generator": "MinGW Makefiles",
|
||||
"inherits" : "mingw"
|
||||
"inherits" : "mingw",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release",
|
||||
"CMAKE_PREFIX_PATH": "c:/Qt/6.3.2/mingw_64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "visualc",
|
||||
|
||||
Reference in New Issue
Block a user