summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-05-17 22:39:59 +0800
committerruki <[email protected]>2018-05-17 09:59:57 +0800
commit9a143be04c04ab253fc31776ab740f1ccd42e04d (patch)
tree0b688c39a9f730f1369cc7b1a38bb2fc0a96327b
parent8bc36559abbd22939c56d24a861b95c7d8b8b3c9 (diff)
support x86 for wdk rule
-rw-r--r--tests/projects/wdk/kmdf/msdsm/xmake.lua2
-rw-r--r--xmake/modules/core/tools/cl.lua2
-rw-r--r--xmake/modules/core/tools/link.lua2
-rw-r--r--xmake/rules/wdk/load.lua4
4 files changed, 6 insertions, 4 deletions
diff --git a/tests/projects/wdk/kmdf/msdsm/xmake.lua b/tests/projects/wdk/kmdf/msdsm/xmake.lua
index 75f1c12ca..31dfaf236 100644
--- a/tests/projects/wdk/kmdf/msdsm/xmake.lua
+++ b/tests/projects/wdk/kmdf/msdsm/xmake.lua
@@ -26,5 +26,5 @@ target("msdsm")
add_links("mpio", "ucrt")
-- set entry
- add_ldflags("-entry:GsDriverEntry", {force = true})
+ add_ldflags("-entry:GsDriverEntry" .. (is_arch("x86") and "@8" or ""), {force = true})
diff --git a/xmake/modules/core/tools/cl.lua b/xmake/modules/core/tools/cl.lua
index 2cdb3ca72..2166d6a85 100644
--- a/xmake/modules/core/tools/cl.lua
+++ b/xmake/modules/core/tools/cl.lua
@@ -30,7 +30,7 @@ import("core.language.language")
function init(self)
-- init cxflags
- _g.cxflags = { "-nologo", "-Gd", "-MP4", "-D_MBCS", "-D_CRT_SECURE_NO_WARNINGS"}
+ _g.cxflags = { "-nologo", "-MP4", "-D_MBCS", "-D_CRT_SECURE_NO_WARNINGS"}
-- init flags map
_g.mapflags =
diff --git a/xmake/modules/core/tools/link.lua b/xmake/modules/core/tools/link.lua
index 9493c9933..620c2468d 100644
--- a/xmake/modules/core/tools/link.lua
+++ b/xmake/modules/core/tools/link.lua
@@ -57,7 +57,7 @@ function get(self, name)
-- switch architecture, @note does cache it in init() for generating vs201x project
values = table.join(values, "-machine:" .. (config.arch() or "x86"))
end
- return _g[name]
+ return values
end
-- make the symbol flag
diff --git a/xmake/rules/wdk/load.lua b/xmake/rules/wdk/load.lua
index 083a6639e..3e8b54a9c 100644
--- a/xmake/rules/wdk/load.lua
+++ b/xmake/rules/wdk/load.lua
@@ -40,6 +40,7 @@ function umdf_driver(target)
if arch == "x64" then
target:add("defines", "_WIN64", "_AMD64_", "AMD64")
else
+ target:add("cxflags", "-Gz", {force = true})
target:add("defines", "_X86_=1", "i386=1", "STD_CALL")
target:add("defines", "DEPRECATE_DDK_FUNCTIONS=1", "MSC_NOOPT", "_ATL_NO_WIN_SUPPORT", "_WINDLL")
end
@@ -59,7 +60,7 @@ function umdf_driver(target)
target:add("shflags", "-NODEFAULTLIB:kernel32.lib", "-NODEFAULTLIB:user32.lib", "-NODEFAULTLIB:libucrt.lib", {force = true})
-- set subsystem: windows, TODO 10.00
- target:add("shflags", "-subsystem:windows,10.00", "-MACHINE:X86", {force = true})
+ target:add("shflags", "-subsystem:windows,10.00", {force = true})
-- set default driver entry if does not exist
local entry = false
@@ -125,6 +126,7 @@ function kmdf_driver(target)
if arch == "x64" then
target:add("defines", "_WIN64", "_AMD64_", "AMD64")
else
+ target:add("cxflags", "-Gz", {force = true})
target:add("defines", "_X86_=1", "i386=1", "STD_CALL")
end
target:add("defines", "WIN32_LEAN_AND_MEAN=1", "_WIN32_WINNT=0x0A00", "WINVER=0x0A00", "WINNT=1", "NTDDI_VERSION=0x0A000004", "_WINDLL")