forked from qt-creator/qt-creator
CMakeProjectManager: Support for multi-config generators
CMake has multi-config generators like: * Visual Studio * Xcode * Ninja Multi-Config The first two have different special targets for "all", "install", "package", "test" namely: "ALL_BUILD", "INSTALL", "PACKAGE", "RUN_TESTS". All of them need to get the build type passed via "--config <build- type>" and not via "CMAKE_BUILD_TYPE". The multi-config generators will use only one build directory. Fixes: QTCREATORBUG-24984 Change-Id: I8aa7ff73ce2af1e163b21a6504d26fcf95530edf Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -73,6 +73,18 @@ BuildDirParameters::BuildDirParameters(CMakeBuildConfiguration *bc)
|
||||
sourceDirectory = p->projectDirectory();
|
||||
buildDirectory = bc->buildDirectory();
|
||||
|
||||
cmakeBuildType = bc->cmakeBuildType();
|
||||
if (cmakeBuildType.isEmpty()) {
|
||||
// The empty build type might be just a case of loading of an existing project
|
||||
// that doesn't have the "CMake.Build.Type" aspect saved
|
||||
const CMakeConfig config = CMakeConfigItem::itemsFromArguments(initialCMakeArguments);
|
||||
if (!config.isEmpty()) {
|
||||
cmakeBuildType = QString::fromLatin1(CMakeConfigItem::valueOf("CMAKE_BUILD_TYPE", config));
|
||||
if (!cmakeBuildType.isEmpty())
|
||||
bc->setCMakeBuildType(cmakeBuildType);
|
||||
}
|
||||
}
|
||||
|
||||
environment = bc->environment();
|
||||
// Disable distributed building for configuration runs. CMake does not do those in parallel,
|
||||
// so there is no win in sending data over the network.
|
||||
|
Reference in New Issue
Block a user