summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2025-09-09 20:00:20 +0200
committerArthur LAURENT <[email protected]>2025-09-09 20:00:20 +0200
commitc6bccc83599b6b48a22ee34be70b9a84cdbb70ce (patch)
tree0d168796c6dd8f42150c340f5f64bbae86e5c350
parent84b2226f6910687a961bf45c2f8d8d4f8f4a5502 (diff)
nfc(wdk rule) simplify wdk/env/load.lua
-rw-r--r--xmake/rules/wdk/env/load.lua78
1 files changed, 20 insertions, 58 deletions
diff --git a/xmake/rules/wdk/env/load.lua b/xmake/rules/wdk/env/load.lua
index 3e9681e61..962eeb616 100644
--- a/xmake/rules/wdk/env/load.lua
+++ b/xmake/rules/wdk/env/load.lua
@@ -38,8 +38,7 @@ function _winver_libdir(winver)
return vervals[winver]
end
--- load for umdf environment
-function umdf(target)
+function _base(target, mode)
-- get wdk
local wdk = target:data("wdk")
@@ -48,7 +47,8 @@ function umdf(target)
local arch = config.arch()
-- add definitions
- local umdfver = wdk.umdfver:split('%.')
+ local ver = mode == "um" and wdk.umdfver or wdk.kmdfver
+ local ver_split = ver:split('%.')
if arch == "x64" then
target:add("defines", "_WIN64", "_AMD64_", "AMD64")
else
@@ -57,16 +57,24 @@ function umdf(target)
target:add("defines", "STD_CALL")
target:add("cxflags", "-Gz", {force = true})
end
- target:add("defines", "UMDF_VERSION_MAJOR=" .. umdfver[1], "UMDF_VERSION_MINOR=" .. umdfver[2], "UMDF_USING_NTSTATUS")
+
+ local prefix = mode == "um" and "UM" or "KM"
+ target:add("defines", prefix .. "DF_VERSION_MAJOR=" .. ver_split[1], prefix .. "DF_VERSION_MINOR=" .. ver_split[2], prefix .. "DF_USING_NTSTATUS")
target:add("defines", "WIN32_LEAN_AND_MEAN=1", "WINNT=1", "_WINDLL")
-- add include directories
- target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "um"))
- target:add("includedirs", path.join(wdk.includedir, "wdf", "umdf", wdk.umdfver))
+ target:add("sysincludedirs", path.join(wdk.includedir, wdk.sdkver, mode))
+ target:add("sysincludedirs", path.join(wdk.includedir, "wdf", mode .. "df", ver))
-- add link directories
- target:add("linkdirs", path.join(wdk.libdir, wdk.sdkver, "um", arch))
- target:add("linkdirs", path.join(wdk.libdir, "wdf", "umdf", arch, wdk.umdfver))
+ target:add("linkdirs", path.join(wdk.libdir, wdk.sdkver, mode, arch))
+ target:add("linkdirs", path.join(wdk.libdir, "wdf", mode .. "df", arch, ver))
+end
+
+-- load for umdf environment
+function umdf(target)
+
+ _base(target, "um")
end
-- load for kmdf environment
@@ -80,69 +88,23 @@ function kmdf(target)
-- add definitions
local winver = target:values("wdk.env.winver") or config.get("wdk_winver")
- local kmdfver = wdk.kmdfver:split('%.')
- if arch == "x64" then
- target:add("defines", "_WIN64", "_AMD64_", "AMD64")
- else
- target:add("defines", "_X86_=1", "i386=1")
- target:add("defines", "DEPRECATE_DDK_FUNCTIONS=1", "MSC_NOOPT", "_ATL_NO_WIN_SUPPORT")
- target:add("defines", "STD_CALL")
- target:add("cxflags", "-Gz", {force = true})
- 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")
+
+ _base(target, "km")
-- add include directories
- target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "km"))
if target:rule("wdk.driver") then
- target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "km", "crt"))
+ target:add("sysincludedirs", path.join(wdk.includedir, wdk.sdkver, "km", "crt"))
end
- target:add("includedirs", path.join(wdk.includedir, "wdf", "kmdf", wdk.kmdfver))
-- add link directories
local libdirver = _winver_libdir(winver)
if libdirver then
target:add("linkdirs", path.join(wdk.libdir, libdirver, "km", arch))
end
- target:add("linkdirs", path.join(wdk.libdir, wdk.sdkver, "km", arch))
- target:add("linkdirs", path.join(wdk.libdir, "wdf", "kmdf", arch, wdk.kmdfver))
end
-- load for wdm environment
function wdm(target)
- -- get wdk
- local wdk = target:data("wdk")
-
- -- get arch
- local arch = config.arch()
-
- -- add definitions
- local winver = target:values("wdk.env.winver") or config.get("wdk_winver")
- local kmdfver = wdk.kmdfver:split('%.')
- if arch == "x64" then
- target:add("defines", "_WIN64", "_AMD64_", "AMD64")
- else
- target:add("defines", "_X86_=1", "i386=1")
- target:add("defines", "DEPRECATE_DDK_FUNCTIONS=1", "MSC_NOOPT", "_ATL_NO_WIN_SUPPORT")
- target:add("defines", "STD_CALL")
- target:add("cxflags", "-Gz", {force = true})
- 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")
-
- -- add include directories
- target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "km"))
- if target:rule("wdk.driver") then
- target:add("includedirs", path.join(wdk.includedir, wdk.sdkver, "km", "crt"))
- end
- target:add("includedirs", path.join(wdk.includedir, "wdf", "kmdf", wdk.kmdfver))
-
- -- add link directories
- local libdirver = _winver_libdir(winver)
- if libdirver then
- target:add("linkdirs", path.join(wdk.libdir, libdirver, "km", arch))
- end
- target:add("linkdirs", path.join(wdk.libdir, wdk.sdkver, "km", arch))
- target:add("linkdirs", path.join(wdk.libdir, "wdf", "kmdf", arch, wdk.kmdfver))
+ kmdf(target)
end