CMakePM: Add project CMake settings support

This is useful if projects do not to have "Auto Run" CMake or want to
have Junctions enabled.

Change-Id: I4a636e7bf64fe2d29d15d39fe9aa46807684c716
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Cristian Adam
2024-05-22 09:48:53 +02:00
parent 97caf327ba
commit 1712402b35
17 changed files with 208 additions and 47 deletions

View File

@@ -349,12 +349,16 @@ void CMakeManager::enableBuildFileMenus(Node *node)
void CMakeManager::reloadCMakePresets()
{
CMakeProject *project = qobject_cast<CMakeProject *>(ProjectTree::currentProject());
if (!project)
return;
QMessageBox::StandardButton clickedButton = CheckableMessageBox::question(
Core::ICore::dialogParent(),
Tr::tr("Reload CMake Presets"),
Tr::tr("Re-generates the kits that were created for CMake presets. All manual "
"modifications to the CMake project settings will be lost."),
settings().askBeforePresetsReload.askAgainCheckableDecider(),
settings(project).askBeforePresetsReload.askAgainCheckableDecider(),
QMessageBox::Yes | QMessageBox::Cancel,
QMessageBox::Yes,
QMessageBox::Yes,
@@ -362,15 +366,11 @@ void CMakeManager::reloadCMakePresets()
{QMessageBox::Yes, Tr::tr("Reload")},
});
settings().writeSettings();
settings(project).writeSettings();
if (clickedButton == QMessageBox::Cancel)
return;
CMakeProject *project = static_cast<CMakeProject *>(ProjectTree::currentProject());
if (!project)
return;
const QSet<QString> oldPresets = Utils::transform<QSet>(project->presetsData().configurePresets,
[](const auto &preset) {
return preset.name;