summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-05-06 22:39:53 +0800
committerruki <[email protected]>2018-05-06 22:39:53 +0800
commitfe2669e329adbc7bf94ecfb6db1f08c54d506a7c (patch)
tree1504ed76cb01999ff2a68f37b2736948d4696833
parent19897786b3cfef22fe20275af7e72ae6826a75f5 (diff)
rename kmdf driver to .sys
-rw-r--r--tests/projects/wdk/kmdf/ioctl/xmake.lua4
-rw-r--r--xmake/core/project/target.lua11
-rw-r--r--xmake/modules/core/tools/rc.lua7
-rw-r--r--xmake/rules/wdk/load.lua3
4 files changed, 17 insertions, 8 deletions
diff --git a/tests/projects/wdk/kmdf/ioctl/xmake.lua b/tests/projects/wdk/kmdf/ioctl/xmake.lua
index 0c85a258c..7eedbe14c 100644
--- a/tests/projects/wdk/kmdf/ioctl/xmake.lua
+++ b/tests/projects/wdk/kmdf/ioctl/xmake.lua
@@ -16,9 +16,7 @@ target("nonpnp")
-- add files
add_files("driver/*.c", {rule = "wdk.tracewpp"})
-
- add_links("BufferOverflowFastFailK", "ntoskrnl", "hal", "wmilib", "WdfLdr", "WdfDriverEntry", "ntstrsafe", "wdmsec")
- add_ldflags("-ENTRY:FxDriverEntry", "-SUBSYSTEM:NATIVE,10.00", "-Driver", "-kernel", {force = true})
+ add_files("driver/*.rc")
-- add target
target("app")
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 20e8fbdaa..18e97cee4 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -56,6 +56,7 @@ function target.apis()
, "target.set_default"
, "target.set_options"
, "target.set_symbols"
+ , "target.set_filename"
, "target.set_basename"
, "target.set_warnings"
, "target.set_optimize"
@@ -279,7 +280,11 @@ end
-- get the base name of target file
function target:basename()
- return self:get("basename")
+ local filename = self:get("filename")
+ if filename then
+ return path.basename(filename)
+ end
+ return self:get("basename") or self:name()
end
-- get the target linker
@@ -484,7 +489,7 @@ function target:targetfile()
local targetkind = self:targetkind()
-- make the target file name and attempt to use the format of linker first
- local filename = target.filename(self:basename() or self:name(), targetkind, self:linker():format(targetkind))
+ local filename = self:get("filename") or target.filename(self:basename(), targetkind, self:linker():format(targetkind))
assert(filename)
-- make the target file path
@@ -499,7 +504,7 @@ function target:symbolfile()
assert(targetdir and type(targetdir) == "string")
-- the symbol file name
- local filename = target.filename(self:basename() or self:name(), "symbol")
+ local filename = target.filename(self:basename(), "symbol")
assert(filename)
-- make the symbol file path
diff --git a/xmake/modules/core/tools/rc.lua b/xmake/modules/core/tools/rc.lua
index 4ef61e2db..52d9c0100 100644
--- a/xmake/modules/core/tools/rc.lua
+++ b/xmake/modules/core/tools/rc.lua
@@ -28,6 +28,9 @@ import("core.project.project")
-- init it
function init(self)
+
+ -- init mrcflags
+ _g.mrcflags = {"-nologo"}
-- init buildmodes
_g.buildmodes =
@@ -43,12 +46,12 @@ end
-- make the define flag
function nf_define(self, macro)
- return "-d" .. macro
+ return "-D" .. macro
end
-- make the undefine flag
function nf_undefine(self, macro)
- return "-u" .. macro
+ return "-U" .. macro
end
-- make the includedir flag
diff --git a/xmake/rules/wdk/load.lua b/xmake/rules/wdk/load.lua
index dd9344c6b..6d78ecf7a 100644
--- a/xmake/rules/wdk/load.lua
+++ b/xmake/rules/wdk/load.lua
@@ -94,6 +94,9 @@ function kmdf_driver(target)
-- set kind
target:set("kind", "binary")
+ -- set filename: xxx.sys
+ target:set("filename", target:basename() .. ".sys")
+
-- add defines
local arch = config.arch()
local kmdfver = wdk.kmdfver:split('%.')