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;
|
return BuildTypeRelWithDebInfo;
|
||||||
if (bt == "minsizerel")
|
if (bt == "minsizerel")
|
||||||
return BuildTypeMinSizeRel;
|
return BuildTypeMinSizeRel;
|
||||||
|
if (bt == "profile")
|
||||||
|
return BuildTypeProfile;
|
||||||
return BuildTypeNone;
|
return BuildTypeNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -467,9 +467,6 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
const CMakeConfig cache = configurePreset.cacheVariables
|
const CMakeConfig cache = configurePreset.cacheVariables
|
||||||
? configurePreset.cacheVariables.value()
|
? configurePreset.cacheVariables.value()
|
||||||
: CMakeConfig();
|
: CMakeConfig();
|
||||||
data->cmakeBuildType = cache.valueOf("CMAKE_BUILD_TYPE");
|
|
||||||
if (data->cmakeBuildType.isEmpty())
|
|
||||||
data->cmakeBuildType = "Debug";
|
|
||||||
|
|
||||||
data->sysroot = cache.filePathValueOf("CMAKE_SYSROOT");
|
data->sysroot = cache.filePathValueOf("CMAKE_SYSROOT");
|
||||||
|
|
||||||
@@ -497,7 +494,29 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
// ToolChains:
|
// ToolChains:
|
||||||
data->toolChains = extractToolChainsFromCache(config);
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
"displayName": "MinGW 11.2.0",
|
"displayName": "MinGW 11.2.0",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Release",
|
|
||||||
"CMAKE_PREFIX_PATH": "c:/Qt/6.3.2/mingw_64"
|
"CMAKE_PREFIX_PATH": "c:/Qt/6.3.2/mingw_64"
|
||||||
},
|
},
|
||||||
"condition": {
|
"condition": {
|
||||||
@@ -31,7 +30,11 @@
|
|||||||
"binaryDir": "${sourceDir}/build-${presetName}-release",
|
"binaryDir": "${sourceDir}/build-${presetName}-release",
|
||||||
"displayName": "MinGW 11.2.0 Makefiles",
|
"displayName": "MinGW 11.2.0 Makefiles",
|
||||||
"generator": "MinGW 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",
|
"name": "visualc",
|
||||||
|
|||||||
Reference in New Issue
Block a user