// Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include "mcusupport_global.h" #include "settingshandler.h" #include #include #include namespace ProjectExplorer { class Kit; } // namespace ProjectExplorer namespace McuSupport::Internal { class McuAbstractPackage; class McuTarget; namespace McuKitManager { enum class UpgradeOption { Ignore, Keep, Replace }; // Kit Factory ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget, const McuPackagePtr &qtForMCUsSdk); // Kit information QString generateKitNameFromTarget(const McuTarget *mcuTarget); QVersionNumber kitQulVersion(const ProjectExplorer::Kit *kit); bool kitIsUpToDate(const ProjectExplorer::Kit *kit, const McuTarget *mcuTarget, const McuPackagePtr &qtForMCUsSdkPackage); // Queries QList existingKits(const McuTarget *mcuTarget); QList matchingKits(const McuTarget *mcuTarget, const McuPackagePtr &qtForMCUsSdkPackage); QList upgradeableKits(const McuTarget *mcuTarget, const McuPackagePtr &qtForMCUsSdkPackage); QList kitsWithMismatchedDependencies(const McuTarget *mcuTarget); QList outdatedKits(); // Maintenance void createAutomaticKits(const SettingsHandler::Ptr &); void upgradeKitsByCreatingNewPackage(const SettingsHandler::Ptr &, UpgradeOption upgradeOption); void upgradeKitInPlace(ProjectExplorer::Kit *kit, const McuTarget *mcuTarget, const McuPackagePtr &qtForMCUsSdk); // Fixing kits: void updatePathsInExistingKits(const SettingsHandler::Ptr &); void fixExistingKits(const SettingsHandler::Ptr &); // Outdated kits: void removeOutdatedKits(); // kits for uninstalled targets: const QList findUninstalledTargetsKits(); void removeUninstalledTargetsKits(const QList uninstalledTargetsKits); } // namespace McuKitManager } // namespace McuSupport::Internal Q_DECLARE_METATYPE(McuSupport::Internal::McuKitManager::UpgradeOption)