diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2023-02-27 14:20:13 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2023-03-15 13:26:47 +0000 |
commit | a84505bf7056cf669e0880351119a4fa1c18f101 (patch) | |
tree | b28a19af80ab155a72e3810067a61e6c8ec6ff34 | |
parent | dc4279ed1874cd83c6f2a1f3983144c772ec59ff (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.targets | 4 | ||||
-rw-r--r-- | QtMSBuild/QtMsBuild/qt_vars.targets | 6 | ||||
-rw-r--r-- | QtVsTools.Package/QtMsBuild/QtModulesEditor.cs | 5 |
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) |