aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2023-12-15 11:23:19 +0100
committerKarsten Heimrich <karsten.heimrich@qt.io>2024-01-16 10:31:31 +0000
commit1f3c620a0692bf861ed29f2d591487db0c294ae8 (patch)
treef310d12fab3f7d20b686d4de1c4edeffc07d113a
parent86681eb5c3362765bba8037b038aec6ac3e3809d (diff)
Adapt wizard template code to cppwinrt templates
Change-Id: I3f30da062d41ceb782042184538ee93b998125a9 Reviewed-by: Miguel Costa <miguel.costa@qt.io>
-rw-r--r--QtVsTools.Core/BuildConfig.cs5
-rw-r--r--QtVsTools.Core/ProjectImport/ProjectImporter.cs9
-rw-r--r--QtVsTools.Core/VersionInformation.cs96
-rw-r--r--QtVsTools.Wizards/ProjectWizard/ProjectTemplateWizard.cs12
4 files changed, 56 insertions, 66 deletions
diff --git a/QtVsTools.Core/BuildConfig.cs b/QtVsTools.Core/BuildConfig.cs
index a19f051a..6952c3d9 100644
--- a/QtVsTools.Core/BuildConfig.cs
+++ b/QtVsTools.Core/BuildConfig.cs
@@ -16,5 +16,10 @@ namespace QtVsTools.Core
#else
#error Unknown Visual Studio version!
#endif
+
+ // Since Visual Studio 2019: WindowsTargetPlatformVersion=10.0
+ // will be treated as "use latest installed Windows 10 SDK".
+ // https://developercommunity.visualstudio.com/comments/407752/view.html
+ public static string WindowsTargetPlatformVersion = "10.0";
}
}
diff --git a/QtVsTools.Core/ProjectImport/ProjectImporter.cs b/QtVsTools.Core/ProjectImport/ProjectImporter.cs
index 1d5b26cb..46be0cfc 100644
--- a/QtVsTools.Core/ProjectImport/ProjectImporter.cs
+++ b/QtVsTools.Core/ProjectImport/ProjectImporter.cs
@@ -259,13 +259,8 @@ namespace QtVsTools.Core
var ok = xmlProject.ConvertCustomBuildToQtMsBuild();
if (ok)
ok = xmlProject.EnableMultiProcessorCompilation();
- if (ok) {
- // Since Visual Studio 2019: WindowsTargetPlatformVersion=10.0
- // will be treated as "use latest installed Windows 10 SDK".
- // https://developercommunity.visualstudio.com/comments/407752/view.html
- const string versionWin10Sdk = "10.0";
- ok = xmlProject.SetDefaultWindowsSDKVersion(versionWin10Sdk);
- }
+ if (ok)
+ ok = xmlProject.SetDefaultWindowsSDKVersion(BuildConfig.WindowsTargetPlatformVersion);
if (ok)
ok = xmlProject.UpdateProjectFormatVersion(oldVersion);
diff --git a/QtVsTools.Core/VersionInformation.cs b/QtVsTools.Core/VersionInformation.cs
index 868e1e55..1deb4b34 100644
--- a/QtVsTools.Core/VersionInformation.cs
+++ b/QtVsTools.Core/VersionInformation.cs
@@ -52,12 +52,50 @@ namespace QtVsTools.Core
return versionInfo;
}
- public string VC_MinimumVisualStudioVersion { get; }
- public string VC_ApplicationTypeRevision { get; }
- public string VC_WindowsTargetPlatformMinVersion { get; }
- public string VC_WindowsTargetPlatformVersion { get; }
- public string VC_Link_TargetMachine { get; }
- private string VC_PlatformToolset { get; }
+ private string vcLinkTargetMachine;
+ public string VC_Link_TargetMachine
+ {
+ get
+ {
+ if (!string.IsNullOrEmpty(vcLinkTargetMachine))
+ return vcLinkTargetMachine;
+
+ // Get VS project settings
+ try {
+ var tempProData = new StringBuilder();
+ tempProData.AppendLine("SOURCES = main.cpp");
+
+ var modules = QtModules.Instance.GetAvailableModules(qtMajor)
+ .Where(mi => mi.Selectable).ToList();
+
+ foreach (var mi in modules) {
+ tempProData.AppendLine(string.Format(
+ "qtHaveModule({0}): HEADERS += {0}.h", mi.proVarQT));
+ }
+
+ var randomName = Path.GetRandomFileName();
+ var tempDir = Path.Combine(Path.GetTempPath(), randomName);
+ Directory.CreateDirectory(tempDir);
+
+ var tempPro = Path.Combine(tempDir, $"{randomName}.pro");
+ File.WriteAllText(tempPro, tempProData.ToString());
+
+ var qmake = new QMakeImport(this, tempPro, disableWarnings: true);
+ if (qmake.Run(setVCVars: true) == 0) {
+ var tempVcxproj = Path.Combine(tempDir, $"{randomName}.vcxproj");
+ var msbuildProj = MsBuildProjectReaderWriter.Load(tempVcxproj);
+
+ Directory.Delete(tempDir, recursive: true);
+
+ vcLinkTargetMachine = msbuildProj.GetProperty("Link", "TargetMachine");
+ }
+ } catch (Exception exception) {
+ exception.Log();
+ vcLinkTargetMachine = null;
+ }
+ return vcLinkTargetMachine;
+ }
+ }
private VersionInformation(string qtDirIn)
{
@@ -101,52 +139,6 @@ namespace QtVsTools.Core
} catch { }
} catch {
qtDir = null;
- return;
- }
-
- // Get VS project settings
- try {
- var tempProData = new StringBuilder();
- tempProData.AppendLine("SOURCES = main.cpp");
-
- var modules = QtModules.Instance.GetAvailableModules(qtMajor)
- .Where(mi => mi.Selectable).ToList();
-
- foreach (QtModule mi in modules) {
- tempProData.AppendLine(string.Format(
- "qtHaveModule({0}): HEADERS += {0}.h", mi.proVarQT));
- }
-
- var randomName = Path.GetRandomFileName();
- var tempDir = Path.Combine(Path.GetTempPath(), randomName);
- Directory.CreateDirectory(tempDir);
-
- var tempPro = Path.Combine(tempDir, $"{randomName}.pro");
- File.WriteAllText(tempPro, tempProData.ToString());
-
- var qmake = new QMakeImport(this, tempPro, disableWarnings: true);
- qmake.Run(setVCVars: true);
-
- var tempVcxproj = Path.Combine(tempDir, $"{randomName}.vcxproj");
- var msbuildProj = MsBuildProjectReaderWriter.Load(tempVcxproj);
-
- Directory.Delete(tempDir, recursive: true);
-
- VC_MinimumVisualStudioVersion =
- msbuildProj.GetProperty("MinimumVisualStudioVersion");
- VC_ApplicationTypeRevision =
- msbuildProj.GetProperty("ApplicationTypeRevision");
- VC_WindowsTargetPlatformVersion =
- msbuildProj.GetProperty("WindowsTargetPlatformVersion");
- VC_WindowsTargetPlatformMinVersion =
- msbuildProj.GetProperty("WindowsTargetPlatformMinVersion");
- VC_PlatformToolset =
- msbuildProj.GetProperty("PlatformToolset");
- VC_Link_TargetMachine =
- msbuildProj.GetProperty("Link", "TargetMachine");
-
- } catch (Exception e) {
- throw new QtVSException("Error reading VS project settings", e);
}
}
diff --git a/QtVsTools.Wizards/ProjectWizard/ProjectTemplateWizard.cs b/QtVsTools.Wizards/ProjectWizard/ProjectTemplateWizard.cs
index 85817045..777893eb 100644
--- a/QtVsTools.Wizards/ProjectWizard/ProjectTemplateWizard.cs
+++ b/QtVsTools.Wizards/ProjectWizard/ProjectTemplateWizard.cs
@@ -387,13 +387,11 @@ namespace QtVsTools.Wizards.ProjectWizard
//
foreach (IWizardConfiguration c in Configurations
.Where(c => c.Target.EqualTo(ProjectTargets.Windows))) {
- if (!string.IsNullOrEmpty(c.QtVersion.VC_WindowsTargetPlatformVersion)) {
xml.AppendLine(string.Format(@"
<WindowsTargetPlatformVersion Condition=""'$(Configuration)|$(Platform)' == '{0}|{1}'"">{2}</WindowsTargetPlatformVersion>",
/*{0}*/ c.Name,
/*{1}*/ c.Platform,
- /*{2}*/ c.QtVersion.VC_WindowsTargetPlatformVersion));
- }
+ /*{2}*/ BuildConfig.WindowsTargetPlatformVersion));
}
///////////////////////////////////////////////////////////////////////////////////////
@@ -411,10 +409,10 @@ namespace QtVsTools.Wizards.ProjectWizard
<AppContainerApplication Condition=""'$(Configuration)|$(Platform)' == '{0}|{1}'"">true</AppContainerApplication>",
/*{0}*/ c.Name,
/*{1}*/ c.Platform,
- /*{2}*/ c.QtVersion.VC_WindowsTargetPlatformVersion,
- /*{3}*/ c.QtVersion.VC_WindowsTargetPlatformMinVersion,
- /*{4}*/ c.QtVersion.VC_MinimumVisualStudioVersion,
- /*{5}*/ c.QtVersion.VC_ApplicationTypeRevision));
+ /*{2}*/ BuildConfig.WindowsTargetPlatformVersion,
+ /*{3}*/ "10.0.17134.0", // windows target platform min version
+ /*{4}*/ "15.0", // minimum Visual Studio version
+ /*{5}*/ "10.0")); // application type revision
}
///////////////////////////////////////////////////////////////////////////////////////