diff options
| author | ruki <[email protected]> | 2018-05-29 22:38:23 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-05-29 09:50:18 +0800 |
| commit | 4f52f8bb0ac11246d7952ed8a895f0dd25390b78 (patch) | |
| tree | 5c2a372b4e474a0c03979ee09b02784a997c56ed /xmake/modules | |
| parent | e336ac264e40142861ce9033b5db4faee328af54 (diff) | |
improve winver for wdk rule
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/utils/os/winver.lua | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/xmake/modules/utils/os/winver.lua b/xmake/modules/utils/os/winver.lua index 8e8b93253..1579b4563 100644 --- a/xmake/modules/utils/os/winver.lua +++ b/xmake/modules/utils/os/winver.lua @@ -22,6 +22,68 @@ -- @file winver.lua -- +-- get windows version value from name +-- +-- reference: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx +-- +function value(name) + + -- init values + _g.values = _g.values or + { + nt4 = "0x0400" + , win2k = "0x0500" + , winxp = "0x0501" + , ws03 = "0x0502" + , win6 = "0x0600" + , vista = "0x0600" + , ws08 = "0x0600" + , longhorn = "0x0600" + , win7 = "0x0601" + , win8 = "0x0602" + , winblue = "0x0603" + , win81 = "0x0603" + , win10 = "0x0A00" + } + + -- ignore the subname with '_xxx' + name = name:split('_')[1] + + -- get value + return _g.values[name] +end + +-- get ntddi value from name +function value_ntddi(name) + + -- init subvalues + _g.subvalues = _g.subvalues or + { + sp1 = "0100" + , sp2 = "0200" + , sp3 = "0300" + , sp4 = "0400" + , th2 = "0001" + , rs1 = "0002" + , rs2 = "0003" + , rs3 = "0004" + } + + -- get subvalue + local subvalue = nil + local subname = name:split('_')[2] + if subname then + subvalue = _g.subvalues[subname] + end + + -- get value + local val = value(name) + if val then + val = val .. (subvalue or "0000") + end + return val +end + -- get windows system version -- -- $ xmake l utils.os.winver |
