forked from qt-creator/qt-creator
CMake: Remove magic configuration from CMake
Get rid of magic configuration handling in the CMakeProjectManager. * Use CMakeCache.txt as the sole source of truth, do not keep a shadow copy of configuration in the .user file * Have initial CMake arguments that are easy to edit in batch (Fixes: QTCREATORBUG-18179) used whenever no CMakeCache.txt file is in the build directory. These allow for any thing that can be passed to CMake on the command line. (Fixes: QTCREATORBUG-16296) * Ask when changes to CMake configuration were not applied (Fixes: QTCREATORBUG-18504) * Run cmake with arguments effecting its configuration only when the CMake settings are changed in the UI, run CMake without any special arguments in all other cases. * Get rid of the confusing dialog used to keep settings in sync between what is in CMakeCache.txt and Creator (Fixes: QTCREATORBUG-23218) Change-Id: I26d55be7df733f084f5691ecf7d7b4352f58b8e7 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -49,6 +49,17 @@ BuildDirParameters::BuildDirParameters(CMakeBuildConfiguration *bc)
|
||||
{
|
||||
QTC_ASSERT(bc, return );
|
||||
|
||||
const Utils::MacroExpander *expander = bc->macroExpander();
|
||||
|
||||
initialCMakeArguments = Utils::transform(bc->initialCMakeArguments(),
|
||||
[expander](const QString &s) {
|
||||
return expander->expand(s);
|
||||
});
|
||||
extraCMakeArguments = Utils::transform(bc->extraCMakeArguments(),
|
||||
[expander](const QString &s) {
|
||||
return expander->expand(s);
|
||||
});
|
||||
|
||||
const Target *t = bc->target();
|
||||
const Kit *k = t->kit();
|
||||
const Project *p = t->project();
|
||||
@@ -70,23 +81,6 @@ BuildDirParameters::BuildDirParameters(CMakeBuildConfiguration *bc)
|
||||
environment.appendOrSetPath(settings->ninjaPath().toString());
|
||||
|
||||
cmakeToolId = CMakeKitAspect::cmakeToolId(k);
|
||||
|
||||
auto tc = ToolChainKitAspect::cxxToolChain(k);
|
||||
if (tc)
|
||||
cxxToolChainId = tc->id();
|
||||
tc = ToolChainKitAspect::cToolChain(k);
|
||||
if (tc)
|
||||
cToolChainId = tc->id();
|
||||
|
||||
expander = k->macroExpander();
|
||||
|
||||
configuration = bc->configurationForCMake();
|
||||
|
||||
generator = CMakeGeneratorKitAspect::generator(k);
|
||||
extraGenerator = CMakeGeneratorKitAspect::extraGenerator(k);
|
||||
platform = CMakeGeneratorKitAspect::platform(k);
|
||||
toolset = CMakeGeneratorKitAspect::toolset(k);
|
||||
generatorArguments = CMakeGeneratorKitAspect::generatorArguments(k);
|
||||
}
|
||||
|
||||
bool BuildDirParameters::isValid() const
|
||||
|
Reference in New Issue
Block a user