diff options
| author | ruki <[email protected]> | 2018-08-21 00:42:47 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-08-20 22:16:43 +0800 |
| commit | 0ba43c443b64019b87721f3af47675ab9d8226ec (patch) | |
| tree | 291f6b3d2cfbfa778e1d3399ca441db9e298ea97 | |
| parent | 7df03dd8e81837f77a7bfb0b4b33ded1770e55b5 (diff) | |
fix some winver bug for wdk rule
| -rw-r--r-- | xmake/modules/os/winver.lua | 9 | ||||
| -rw-r--r-- | xmake/rules/wdk/env/load.lua | 1 | ||||
| -rw-r--r-- | xmake/rules/wdk/env/xmake.lua | 8 | ||||
| -rw-r--r-- | xmake/rules/wdk/load.lua | 21 |
4 files changed, 29 insertions, 10 deletions
diff --git a/xmake/modules/os/winver.lua b/xmake/modules/os/winver.lua index 50763417a..288f3a89f 100644 --- a/xmake/modules/os/winver.lua +++ b/xmake/modules/os/winver.lua @@ -84,9 +84,14 @@ function ntddi_version(name) return val end --- get WIN32_WINNT from name +-- get _WIN32_WINNT from name function winnt_version(name) - return ntddi_version(name) + return version(name) +end + +-- get _NT_TARGET_VERSION from name +function target_version(name) + return version(name) end -- get windows system version diff --git a/xmake/rules/wdk/env/load.lua b/xmake/rules/wdk/env/load.lua index b10b4a1ca..2123cca7d 100644 --- a/xmake/rules/wdk/env/load.lua +++ b/xmake/rules/wdk/env/load.lua @@ -52,7 +52,6 @@ function umdf(target) local arch = config.arch() -- add defines - local winver = target:values("wdk.env.winver") or config.get("wdk_winver") local umdfver = wdk.umdfver:split('%.') if arch == "x64" then target:add("defines", "_WIN64", "_AMD64_", "AMD64") diff --git a/xmake/rules/wdk/env/xmake.lua b/xmake/rules/wdk/env/xmake.lua index 0db7c86e8..64475ab04 100644 --- a/xmake/rules/wdk/env/xmake.lua +++ b/xmake/rules/wdk/env/xmake.lua @@ -62,19 +62,23 @@ rule("wdk.env") -- get winver version local winver_version = os_winver.version(winver or "") or "0x0A00" + -- get target version + local target_version = os_winver.target_version(winver or "") or "0x0A00" + -- get winnt version - local winnt_version = os_winver.winnt_version(winver or "") or "0x0A000000" + local winnt_version = os_winver.winnt_version(winver or "") or "0x0A00" -- get ntddi version local ntddi_version = os_winver.ntddi_version(winver or "") or "0x0A000000" -- add defines for winver - target:add("defines", "_WIN32_WINNT=" .. winnt_version, "WINVER=" .. winver_version, "NTDDI_VERSION=" .. ntddi_version) + target:add("defines", "_WIN32_WINNT=" .. winnt_version, "WINVER=" .. winver_version, "NTDDI_VERSION=" .. ntddi_version, "_NT_TARGET_VERSION=" .. target_version) -- set builtin version values target:values_set("wdk.env.winnt_version", winnt_version) target:values_set("wdk.env.ntddi_version", ntddi_version) target:values_set("wdk.env.winver_version", winver_version) + target:values_set("wdk.env.target_version", target_version) -- save wdk target:data_set("wdk", wdk) diff --git a/xmake/rules/wdk/load.lua b/xmake/rules/wdk/load.lua index 312fa3454..23a4c0740 100644 --- a/xmake/rules/wdk/load.lua +++ b/xmake/rules/wdk/load.lua @@ -34,11 +34,19 @@ function _winver_subsystem(winver) -- make defined values local defvals = { - win10 = "10.00" - , win81 = "6.03" - , winblue = "6.03" - , win8 = "6.02" - , win7 = "6.01" + nt4 = "4.00" + , win2k = "5.00" + , winxp = "5.01" + , ws03 = "5.02" + , win6 = "6.00" + , vista = "6.00" + , ws08 = "6.00" + , longhorn = "6.00" + , win7 = "6.01" + , win8 = "6.02" + , winblue = "6.03" + , win81 = "6.03" + , win10 = "10.00" } return defvals[winver] or "10.00" end @@ -54,6 +62,7 @@ function driver_umdf(target) target:add("shflags", "-NODEFAULTLIB:kernel32.lib", "-NODEFAULTLIB:user32.lib", "-NODEFAULTLIB:libucrt.lib", {force = true}) -- add subsystem + local winver = target:values("wdk.env.winver") or config.get("wdk_winver") target:add("shflags", "-subsystem:windows," .. _winver_subsystem(winver), {force = true}) -- set default driver entry if does not exist @@ -87,6 +96,7 @@ function driver_kmdf(target) target:add("ldflags", "-kernel", "-driver", {force = true}) -- add subsystem + local winver = target:values("wdk.env.winver") or config.get("wdk_winver") target:add("ldflags", "-subsystem:native," .. _winver_subsystem(winver), {force = true}) -- set default driver entry if does not exist @@ -121,6 +131,7 @@ function driver_wdm(target) target:add("ldflags", "-kernel", "-driver", {force = true}) -- add subsystem + local winver = target:values("wdk.env.winver") or config.get("wdk_winver") target:add("ldflags", "-subsystem:native," .. _winver_subsystem(winver), {force = true}) -- set default driver entry if does not exist |
