From 0be6ba955d3c7e434524dca9084cbfcac75808c8 Mon Sep 17 00:00:00 2001 From: Kwangsub Kim Date: Tue, 8 Nov 2022 15:29:02 +0100 Subject: [PATCH] McuSupport: Expand variables for automatic kits An MCU kit that is created automatically also requires variable expansion before the kit is generated. The same preparation for the variables will be done as the MCU option page. Task-number: UL-6603 Change-Id: I915f6f6e8c6e2a90409c527951e469c555002cff Reviewed-by: Rainer Keller Reviewed-by: Yasser Grimes Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/mcusupport/mcukitmanager.cpp | 2 ++ src/plugins/mcusupport/mcusupportoptions.cpp | 17 ++++++++++------- src/plugins/mcusupport/mcusupportoptions.h | 1 + 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index ae5c5f4b153..1aba15b1b71 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -527,6 +527,8 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler) } McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, settingsHandler)}; + McuSdkRepository::updateQtDirMacro(qtForMCUsPackage->path()); + repo.expandVariablesAndWildcards(); bool needsUpgrade = false; for (const auto &target : std::as_const(repo.mcuTargets)) { diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 1c7a170f8a9..d2d57973b11 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -77,6 +77,15 @@ Macros *McuSdkRepository::globalMacros() return ¯os; } +void McuSdkRepository::updateQtDirMacro(const FilePath &qulDir) +{ + // register the Qt installation directory containing Qul dir + auto qtPath = (qulDir / "../..").cleanPath(); + if (qtPath.exists()) { + globalMacros()->insert("QtDir", [qtPathString = qtPath.path()] { return qtPathString; }); + } +} + void McuSdkRepository::expandVariablesAndWildcards() { for (const auto &target : std::as_const(mcuTargets)) { @@ -198,13 +207,7 @@ bool McuSupportOptions::isLegacyVersion(const QVersionNumber &version) void McuSupportOptions::setQulDir(const FilePath &path) { - //register the Qt installation directory containing Qul dir - auto qtPath = (path / "../..").cleanPath(); - if (qtPath.exists()) { - McuSdkRepository::globalMacros()->insert("QtDir", [qtPathString = qtPath.path()] { - return qtPathString; - }); - } + McuSdkRepository::updateQtDirMacro(path); qtForMCUsSdkPackage->updateStatus(); if (qtForMCUsSdkPackage->isValidStatus()) sdkRepository = targetsAndPackages(qtForMCUsSdkPackage, settingsHandler); diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h index f6e39e529ae..7c2709d2599 100644 --- a/src/plugins/mcusupport/mcusupportoptions.h +++ b/src/plugins/mcusupport/mcusupportoptions.h @@ -40,6 +40,7 @@ public: Targets mcuTargets; Packages packages; + static void updateQtDirMacro(const Utils::FilePath &qulDir); void expandVariablesAndWildcards(); MacroExpanderPtr getMacroExpander(const McuTarget &target);