Added ManifestMaxVersionTested

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@7096 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2019-06-06 00:42:08 +00:00
parent 68547d1e63
commit fb6945ec36
9 changed files with 50 additions and 11 deletions

View file

@ -91,8 +91,14 @@ bool SupportedOSList::append(const TCHAR* osid)
}
string generate(flags featureflags, comctl comctl_selection, exec_level exec_level_selection, dpiaware dpia, const TCHAR*dpia2, SupportedOSList& sosl)
string generate(comctl comctl_selection, exec_level exec_level_selection, const SPECIFICATION&spec)
{
flags featureflags = spec.Flags;
dpiaware dpia = spec.DPIA;
const TCHAR *dpia2 = spec.DPIA2;
SupportedOSList& sosl = spec.SOSL;
const TCHAR *mvt = spec.MaxVersionTested;
bool default_or_empty_sosl = sosl.isdefaultlist() || !sosl.getcount();
if (comctl_selection == comctl_old && exec_level_selection == exec_level_none && default_or_empty_sosl && dpiaware_notset == dpia)
return "";
@ -136,15 +142,21 @@ string generate(flags featureflags, comctl comctl_selection, exec_level exec_lev
}
int soslcount = sosl.getcount();
if (soslcount)
if (soslcount || *mvt)
{
char buf[38+1];
xml += "<compatibility xmlns=\"urn:schemas-microsoft-com:compatibility.v1\"><application>";
while(soslcount--)
{
xml += "<supportedOS Id=\"";
RawTStrToASCII(sosl.get(soslcount), buf, COUNTOF(buf));
xml += buf, xml += "\"/>";
xml += (RawTStrToASCII(sosl.get(soslcount), buf, COUNTOF(buf)), buf);
xml += "\"/>";
}
if (*mvt)
{
xml += "<maxVersionTested Id=\"";
xml += TtoCString(mvt);
xml += "\"/>";
}
xml += "</application></compatibility>";
}
@ -165,7 +177,7 @@ string generate(flags featureflags, comctl comctl_selection, exec_level exec_lev
if (dpiaware_notset != dpia)
{
xml_aws += "<dpiAware xmlns=\"http://schemas.microsoft.com/SMI/2005/WindowsSettings\">";
xml_aws += dpia >= dpiaware_permonitor ? "True/PM" : dpiaware_false != dpia ? "true" : "false";
xml_aws += dpia == dpiaware_explorer ? "Explorer" : dpia >= dpiaware_permonitor ? "True/PM" : dpiaware_false != dpia ? "true" : "false";
xml_aws += "</dpiAware>";
}
if (*dpia2)