added a 'latest' systemversion for vs2017
forgot to add the ".0" suffix added unit tests for systemversion "latest"
This commit is contained in:
parent
e9dda518cf
commit
d5089b5d9b
@ -253,3 +253,48 @@
|
||||
</PropertyGroup>
|
||||
]]
|
||||
end
|
||||
|
||||
--
|
||||
-- Check that the "latest" systemversion works.
|
||||
-- note: we override the os.getWindowsRegistry method for reliable tests.
|
||||
--
|
||||
|
||||
function suite.windowsTargetPlatformVersionLatest_on2017()
|
||||
p.action.set("vs2017")
|
||||
systemversion "latest"
|
||||
prepare()
|
||||
local oldRegistry = os.getWindowsRegistry
|
||||
os.getWindowsRegistry = function (key)
|
||||
return "10.0.11111"
|
||||
end
|
||||
test.capture [[
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{42B5DBC6-AE1F-903D-F75D-41E363076E92}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>MyProject</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.11111.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
]]
|
||||
-- restore the registry function
|
||||
os.getWindowsRegistry = oldRegistry
|
||||
end
|
||||
|
||||
--
|
||||
-- Check that the "latest" systemversion will not add <WindowsTargetPlatformVersion>
|
||||
-- when the action is less than 2017
|
||||
--
|
||||
|
||||
function suite.windowsTargetPlatformVersionLatest_on2015()
|
||||
p.action.set("vs2015")
|
||||
systemversion "10.0.10240.0"
|
||||
prepare()
|
||||
test.capture [[
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{42B5DBC6-AE1F-903D-F75D-41E363076E92}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>MyProject</RootNamespace>
|
||||
</PropertyGroup>
|
||||
]]
|
||||
end
|
||||
|
@ -2356,9 +2356,16 @@
|
||||
|
||||
|
||||
function m.targetPlatformVersion(prj)
|
||||
local min = project.systemversion(prj)
|
||||
if min ~= nil and _ACTION >= "vs2015" then
|
||||
m.element("WindowsTargetPlatformVersion", nil, min)
|
||||
if _ACTION >= "vs2015" then
|
||||
local min = project.systemversion(prj)
|
||||
-- handle special "latest" version
|
||||
if min == "latest" then
|
||||
-- vs2015 and lower can't build against SDK 10
|
||||
min = iif(_ACTION >= "vs2017", m.latestSDK10Version(), nil)
|
||||
end
|
||||
if min ~= nil then
|
||||
m.element("WindowsTargetPlatformVersion", nil, min)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -2484,6 +2491,15 @@
|
||||
return m.conditionFromConfigText(vstudio.projectConfig(cfg))
|
||||
end
|
||||
|
||||
--
|
||||
-- Get the latest installed SDK 10 version from the registry.
|
||||
--
|
||||
|
||||
function m.latestSDK10Version()
|
||||
local arch = iif(os.is64bit(), "\\WOW6432Node\\", "\\")
|
||||
local version = os.getWindowsRegistry("HKLM:SOFTWARE" .. arch .."Microsoft\\Microsoft SDKs\\Windows\\v10.0\\ProductVersion")
|
||||
return iif(version ~= nil, version .. ".0", nil)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
|
Reference in New Issue
Block a user