summaryrefslogtreecommitdiff
path: root/xmake/rules/wdk/load.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2018-05-16 00:44:01 +0800
committerruki <[email protected]>2018-05-15 22:24:08 +0800
commit0e7791da7d897a809ea3922ddc772d700a7b491e (patch)
treea1909331956160b7464b73e79eb0ddfbb1f9b00d /xmake/rules/wdk/load.lua
parent7fdf5ff81ea4c4fb95ec26a82cf353692cbb231d (diff)
improve wdk entry and fix build progress
Diffstat (limited to 'xmake/rules/wdk/load.lua')
-rw-r--r--xmake/rules/wdk/load.lua20
1 files changed, 17 insertions, 3 deletions
diff --git a/xmake/rules/wdk/load.lua b/xmake/rules/wdk/load.lua
index 5632b601c..7ea5d1aba 100644
--- a/xmake/rules/wdk/load.lua
+++ b/xmake/rules/wdk/load.lua
@@ -115,14 +115,28 @@ function kmdf_driver(target)
target:add("linkdirs", path.join(wdk.libdir, "wdf", "kmdf", arch, wdk.kmdfver))
-- add links
- target:add("links", "BufferOverflowFastFailK", "ntoskrnl", "hal", "wmilib", "WdfLdr", "WdfDriverEntry", "ntstrsafe", "wdmsec")
+ target:add("links", "BufferOverflowFastFailK", "ntoskrnl", "hal", "wmilib", "WdfLdr", "ntstrsafe", "wdmsec")
-- compile as kernel driver
target:add("cxflags", "-kernel", {force = true})
target:add("ldflags", "-kernel", "-driver", {force = true})
- -- set driver entry
- target:add("ldflags", "-entry:FxDriverEntry", "-subsystem:native,10.00", {force = true})
+ -- set subsystem: native, TODO 10.00
+ target:add("ldflags", "-subsystem:native,10.00", {force = true})
+
+ -- set default driver entry if does not exist
+ local entry = false
+ for _, ldflag in ipairs(target:get("ldflags")) do
+ ldflag = ldflag:lower()
+ if ldflag:find("[/%-]entry:") then
+ entry = true
+ break
+ end
+ end
+ if not entry then
+ target:add("links", "WdfDriverEntry")
+ target:add("ldflags", "-entry:FxDriverEntry", {force = true})
+ end
end
-- load for kmdf binary