summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-06-14 22:46:02 +0800
committerruki <[email protected]>2018-06-14 10:36:18 +0800
commitd37d5fa62c84c1bf1c63b1a71aacbde497493dd6 (patch)
tree9176149aed44e274c129040ba48799dd0846e0f6
parent5845be83c1cdc063873a652e122862fc4009f349 (diff)
add builtin winver versions
-rw-r--r--tests/projects/wdk/wdm/msdsm/xmake.lua7
-rw-r--r--xmake/modules/os/winver.lua5
-rw-r--r--xmake/rules/wdk/env/load.lua14
-rw-r--r--xmake/rules/wdk/env/xmake.lua22
4 files changed, 27 insertions, 21 deletions
diff --git a/tests/projects/wdk/wdm/msdsm/xmake.lua b/tests/projects/wdk/wdm/msdsm/xmake.lua
index d7a8804c6..069f69767 100644
--- a/tests/projects/wdk/wdm/msdsm/xmake.lua
+++ b/tests/projects/wdk/wdm/msdsm/xmake.lua
@@ -25,10 +25,3 @@ target("sampledsm")
-- add links
add_links("mpio")
- on_load(function (target)
-
- import("core.project.config")
- print(target:values("wdk.env.winver") or config.get("wdk_winver"))
- local ntddi_version = import("os.winver").ntddi_version(target:values("wdk.env.winver") or config.get("wdk_winver"))
- print(ntddi_version)
- end)
diff --git a/xmake/modules/os/winver.lua b/xmake/modules/os/winver.lua
index 79587c6ed..50763417a 100644
--- a/xmake/modules/os/winver.lua
+++ b/xmake/modules/os/winver.lua
@@ -84,6 +84,11 @@ function ntddi_version(name)
return val
end
+-- get WIN32_WINNT from name
+function winnt_version(name)
+ return ntddi_version(name)
+end
+
-- get windows system version
--
-- $ xmake l os.winver
diff --git a/xmake/rules/wdk/env/load.lua b/xmake/rules/wdk/env/load.lua
index 2f36745f3..b10b4a1ca 100644
--- a/xmake/rules/wdk/env/load.lua
+++ b/xmake/rules/wdk/env/load.lua
@@ -24,17 +24,6 @@
-- imports
import("core.project.config")
-import("os.winver", {alias = "os_winver"})
-
--- get windows version value
-function _winver(winver)
- return os_winver.version(winver or "") or "0x0A00"
-end
-
--- get windows ntddi version value
-function _winver_ntddi(winver)
- return os_winver.ntddi_version(winver or "") or "0x0A000000"
-end
-- get version of the library sub-directory
function _winver_libdir(winver)
@@ -75,7 +64,6 @@ function umdf(target)
end
target:add("defines", "UMDF_VERSION_MAJOR=" .. umdfver[1], "UMDF_VERSION_MINOR=" .. umdfver[2], "UMDF_USING_NTSTATUS")
target:add("defines", "WIN32_LEAN_AND_MEAN=1", "WINNT=1", "_WINDLL")
- target:add("defines", "_WIN32_WINNT=" .. _winver(winver), "WINVER=" .. _winver(winver), "NTDDI_VERSION=" .. _winver_ntddi(winver))
-- add include directories
target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "um"))
@@ -108,7 +96,6 @@ function kmdf(target)
end
target:add("defines", "KMDF_VERSION_MAJOR=" .. kmdfver[1], "KMDF_VERSION_MINOR=" .. kmdfver[2], "KMDF_USING_NTSTATUS")
target:add("defines", "WIN32_LEAN_AND_MEAN=1", "WINNT=1", "_WINDLL")
- target:add("defines", "_WIN32_WINNT=" .. _winver(winver), "WINVER=" .. _winver(winver), "NTDDI_VERSION=" .. _winver_ntddi(winver))
-- add include directories
target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "km"))
@@ -148,7 +135,6 @@ function wdm(target)
end
target:add("defines", "KMDF_VERSION_MAJOR=" .. kmdfver[1], "KMDF_VERSION_MINOR=" .. kmdfver[2], "KMDF_USING_NTSTATUS")
target:add("defines", "WIN32_LEAN_AND_MEAN=1", "WINNT=1", "_WINDLL")
- target:add("defines", "_WIN32_WINNT=" .. _winver(winver), "WINVER=" .. _winver(winver), "NTDDI_VERSION=" .. _winver_ntddi(winver))
-- add include directories
target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "km"))
diff --git a/xmake/rules/wdk/env/xmake.lua b/xmake/rules/wdk/env/xmake.lua
index b97e15d12..0db7c86e8 100644
--- a/xmake/rules/wdk/env/xmake.lua
+++ b/xmake/rules/wdk/env/xmake.lua
@@ -29,6 +29,8 @@ rule("wdk.env")
before_load(function (target)
-- imports
+ import("os.winver", {alias = "os_winver"})
+ import("core.project.config")
import("detect.sdks.find_wdk")
-- load wdk environment
@@ -54,6 +56,26 @@ rule("wdk.env")
target:add("define", "DBG=1")
end
+ -- get winver name
+ local winver = target:values("wdk.env.winver") or config.get("wdk_winver")
+
+ -- get winver version
+ local winver_version = os_winver.version(winver or "") or "0x0A00"
+
+ -- get winnt version
+ local winnt_version = os_winver.winnt_version(winver or "") or "0x0A000000"
+
+ -- 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)
+
+ -- 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)
+
-- save wdk
target:data_set("wdk", wdk)
end