summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-05-12 00:51:18 +0800
committerruki <[email protected]>2018-05-11 23:07:50 +0800
commit166a68fd2868db1cea82bfe2e3172d0ca1bd0ae6 (patch)
treebb6f6296a18233d811233341557de7a88698cc32
parent7d6f2128d571092ddd6fb8e3c6f25bcca432aced (diff)
improve wdk.man
-rw-r--r--tests/projects/wdk/kmdf/perfcounters/xmake.lua2
-rw-r--r--xmake/rules/wdk/load.lua8
-rw-r--r--xmake/rules/wdk/man/xmake.lua33
3 files changed, 15 insertions, 28 deletions
diff --git a/tests/projects/wdk/kmdf/perfcounters/xmake.lua b/tests/projects/wdk/kmdf/perfcounters/xmake.lua
index 94b7f661b..17fd5d5cb 100644
--- a/tests/projects/wdk/kmdf/perfcounters/xmake.lua
+++ b/tests/projects/wdk/kmdf/perfcounters/xmake.lua
@@ -9,7 +9,7 @@ target("kcs")
add_rules("wdk.kmdf.driver")
-- add flags for rule: wdk.man
- add_values("wdk.man.flags", "-prefix Kcs")
+ add_values("wdk.man.prefix", "Kcs")
add_values("wdk.man.resource", "kcsCounters.rc")
add_values("wdk.man.header", "kcsCounters.h")
add_values("wdk.man.counter_header", "kcsCounters_counters.h")
diff --git a/xmake/rules/wdk/load.lua b/xmake/rules/wdk/load.lua
index 6d78ecf7a..5632b601c 100644
--- a/xmake/rules/wdk/load.lua
+++ b/xmake/rules/wdk/load.lua
@@ -116,7 +116,13 @@ function kmdf_driver(target)
-- add links
target:add("links", "BufferOverflowFastFailK", "ntoskrnl", "hal", "wmilib", "WdfLdr", "WdfDriverEntry", "ntstrsafe", "wdmsec")
- target:add("ldflags", "-entry:FxDriverEntry", "-subsystem:native,10.00", "-driver", "-kernel", {force = true})
+
+ -- 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})
end
-- load for kmdf binary
diff --git a/xmake/rules/wdk/man/xmake.lua b/xmake/rules/wdk/man/xmake.lua
index 52620a8ec..76dd493a4 100644
--- a/xmake/rules/wdk/man/xmake.lua
+++ b/xmake/rules/wdk/man/xmake.lua
@@ -57,7 +57,6 @@ rule("wdk.man")
-- imports
import("core.base.option")
import("core.project.depend")
- import("core.tool.compiler")
-- get ctrpp
local ctrpp = target:data("wdk.ctrpp")
@@ -86,6 +85,13 @@ rule("wdk.man")
raise("please call `set_values(\"wdk.man.header\", \"header.h\")` to set the provider header file name!")
end
+ -- add prefix
+ local prefix = target:values("wdk.man.prefix")
+ if prefix then
+ table.insert(args, "-prefix")
+ table.insert(args, prefix)
+ end
+
-- add counter header file
local counter_header = target:values("wdk.man.counter_header")
local counter_headerfile = counter_header and path.join(outputdir, counter_header) or nil
@@ -124,31 +130,6 @@ rule("wdk.man")
end
os.vrunv(ctrpp, args)
- -- has resource file? compile it
- if resourcefile and os.isfile(resourcefile) then
-
- -- trace progress info
- if option.get("verbose") then
- cprint("${green}[%02d%%]:${dim} compiling.wdk.rc %s", opt.progress, resource)
- else
- cprint("${green}[%02d%%]:${clear} compiling.wdk.rc %s", opt.progress, resource)
- end
-
- -- get resource object file
- local objectfile = target:objectfile(resourcefile)
-
- -- trace
- if option.get("verbose") then
- print(compiler.compcmd(resourcefile, objectfile, {target = target}))
- end
-
- -- compile resource file
- compiler.compile(resourcefile, objectfile, {target = target})
-
- -- add object file
- table.insert(target:objectfiles(), objectfile)
- end
-
-- update files and values to the dependent file
dependinfo.files = {sourcefile}
dependinfo.values = args