diff options
| author | ruki <[email protected]> | 2018-06-14 22:46:02 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-06-14 10:36:18 +0800 |
| commit | d37d5fa62c84c1bf1c63b1a71aacbde497493dd6 (patch) | |
| tree | 9176149aed44e274c129040ba48799dd0846e0f6 | |
| parent | 5845be83c1cdc063873a652e122862fc4009f349 (diff) | |
add builtin winver versions
| -rw-r--r-- | tests/projects/wdk/wdm/msdsm/xmake.lua | 7 | ||||
| -rw-r--r-- | xmake/modules/os/winver.lua | 5 | ||||
| -rw-r--r-- | xmake/rules/wdk/env/load.lua | 14 | ||||
| -rw-r--r-- | xmake/rules/wdk/env/xmake.lua | 22 |
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 |
