aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2023-02-27 14:20:13 +0100
committerKarsten Heimrich <karsten.heimrich@qt.io>2023-03-15 13:26:47 +0000
commita84505bf7056cf669e0880351119a4fa1c18f101 (patch)
treeb28a19af80ab155a72e3810067a61e6c8ec6ff34
parentdc4279ed1874cd83c6f2a1f3983144c772ec59ff (diff)
Fix Qt Modules settings page adding a trailing ';'
If the Qt Modules line edit was empty, String.Split did still return this empty value and it was added later on in the code by String.Join, leading to a trailing ';'. Fix QtMsBuild QtModules comparison by cleaning up the list of modules first, basically like QtBkup_QtModules is created. Fixes: QTVSADDINBUG-1092 Change-Id: Ia51c712bdf845ccf43c9a40117c4d334679f927e Reviewed-by: Miguel Costa <miguel.costa@qt.io>
-rw-r--r--QtMSBuild/QtMsBuild/qt_globals.targets4
-rw-r--r--QtMSBuild/QtMsBuild/qt_vars.targets6
-rw-r--r--QtVsTools.Package/QtMsBuild/QtModulesEditor.cs5
3 files changed, 11 insertions, 4 deletions
diff --git a/QtMSBuild/QtMsBuild/qt_globals.targets b/QtMSBuild/QtMsBuild/qt_globals.targets
index 17ec636a..8dee52bf 100644
--- a/QtMSBuild/QtMsBuild/qt_globals.targets
+++ b/QtMSBuild/QtMsBuild/qt_globals.targets
@@ -65,10 +65,12 @@
// -->
<PropertyGroup Condition="'$(QtInnerBuild)' == ''">
<QtVarsOutdated>false</QtVarsOutdated>
+ <CleanQtModules
+ >$([System.String]::Join(';',$(QtModules.Split(';',StringSplitOptions.RemoveEmptyEntries))))</CleanQtModules>
<QtVarsOutdated
Condition="!Exists('$(QtVarsFilePath)')
OR '$(QtBkup_QtInstall)' != '$(QtInstall)'
- OR '$(QtBkup_QtModules)' != '$(QtModules)'
+ OR '$(QtBkup_QtModules)' != '$(CleanQtModules)'
OR '$(QtBkup_QtPathBinaries)' != '$(QtPathBinaries)'
OR '$(QtBkup_QtPathLibraryExecutables)' != '$(QtPathLibraryExecutables)'
OR '$(QtBkup_QtHeaderSearchPath)' != '$(QtHeaderSearchPath)'
diff --git a/QtMSBuild/QtMsBuild/qt_vars.targets b/QtMSBuild/QtMsBuild/qt_vars.targets
index 3e561368..4037a469 100644
--- a/QtMSBuild/QtMsBuild/qt_vars.targets
+++ b/QtMSBuild/QtMsBuild/qt_vars.targets
@@ -595,10 +595,14 @@ DummyQmlObject { }
// Force QtVars target to run when Qt settings have changed
// -->
<Target Name="QtVarsPrepare" BeforeTargets="QtVars" Condition="Exists('$(QtVarsFilePath)')">
+ <PropertyGroup>
+ <CleanQtModules
+ >$([System.String]::Join(';',$(QtModules.Split(';',StringSplitOptions.RemoveEmptyEntries))))</CleanQtModules>
+ </PropertyGroup>
<Delete Files="$(QtVarsFilePath)" Condition="Exists('$(QtVarsFilePath)')
AND '$(QtBkup_QtInstall)' != '$(QtInstall)'" />
<Delete Files="$(QtVarsFilePath)" Condition="Exists('$(QtVarsFilePath)')
- AND '$(QtBkup_QtModules)' != '$(QtModules)'" />
+ AND '$(QtBkup_QtModules)' != '$(CleanQtModules)'" />
<Delete Files="$(QtVarsFilePath)" Condition="Exists('$(QtVarsFilePath)')
AND '$(QtBkup_QtPathBinaries)' != '$(QtPathBinaries)'" />
<Delete Files="$(QtVarsFilePath)" Condition="Exists('$(QtVarsFilePath)')
diff --git a/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs b/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs
index b43dc625..22c6cbda 100644
--- a/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs
+++ b/QtVsTools.Package/QtMsBuild/QtModulesEditor.cs
@@ -48,9 +48,10 @@ namespace QtVsTools.QtMsBuild
HashSet<string> selectedQt = null;
IEnumerable<string> extraQt = null;
- if (currentValue != null) {
+ if (currentValue is string currentModules) {
var allQt = modules.SelectMany(x => x.QT).ToHashSet();
- selectedQt = currentValue.ToString().Split(';').ToHashSet();
+ selectedQt = currentModules
+ .Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToHashSet();
extraQt = selectedQt.Except(allQt);
foreach (var module in modules)