-
-
Notifications
You must be signed in to change notification settings - Fork 775
-
-
Notifications
You must be signed in to change notification settings - Fork 775
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add wdk compilation environment support #159
Comments
umdf example echo: -- add modes: debug and release
add_rules("mode.debug", "mode.release")
-- enable unicode
add_defines("_UNICODE", "UNICODE")
-- add target
target("echo")
-- add rules
add_rules("wdk.env.umdf", "wdk.driver")
-- add files
add_files("driver/*.c")
add_files("driver/*.inx")
-- add includedirs
add_includedirs("exe")
-- add target
target("app")
-- add rules
add_rules("wdk.env.umdf", "wdk.binary")
-- add files
add_files("exe/*.cpp") |
kmdf example ioctl: -- add modes: debug and release
add_rules("mode.debug", "mode.release")
-- add target
target("nonpnp")
-- add rules
add_rules("wdk.env.kmdf", "wdk.driver")
-- add flags for rule: wdk.tracewpp
add_values("wdk.tracewpp.flags", "-func:TraceEvents(LEVEL,FLAGS,MSG,...)", "-func:Hexdump((LEVEL,FLAGS,MSG,...))")
-- add files
add_files("driver/*.c", {rule = "wdk.tracewpp"})
add_files("driver/*.rc")
-- add target
target("app")
-- add rules
add_rules("wdk.env.kmdf", "wdk.binary")
-- add files
add_files("exe/*.c")
add_files("exe/*.inf") |
wdm example with *.man perfcounters: -- add modes: debug and release
add_rules("mode.debug", "mode.release")
-- add target
target("kcs")
-- add rules
add_rules("wdk.env.wdm", "wdk.driver")
-- add flags for rule: wdk.man
add_values("wdk.man.flags", "-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")
-- add files
add_files("*.c", "*.rc", "*.man") |
kmdf example with *.mc serial: -- add modes: debug and release
add_rules("mode.debug", "mode.release")
-- add target
target("serial")
-- add rules
add_rules("wdk.env.kmdf", "wdk.driver")
-- add flags for rule: wdk.tracewpp
add_values("wdk.tracewpp.flags", "-func:SerialDbgPrintEx(LEVEL,FLAGS,MSG,...)")
-- add header file name for rule: wdk.mc
add_values("wdk.mc.header", "serlog.h")
-- add files
add_files("*.c", {rule = "wdk.tracewpp"})
add_files("*.mc", "*.rc", "*.inx") |
wdm example with *.mof msdsm: -- add modes: debug and release
add_rules("mode.debug", "mode.release")
-- add target
target("msdsm")
-- add rules
add_rules("wdk.env.wdm", "wdk.driver")
-- add flags for rule: wdk.tracewpp
add_values("wdk.tracewpp.flags", "-func:TracePrint((LEVEL,FLAGS,MSG,...))")
-- add files
add_files("*.c", {rule = "wdk.tracewpp"})
add_files("*.rc", "*.inf")
add_files("*.mof|msdsm.mof")
-- add file msdsm.mof and modify default wdk.mof.header for this file
add_files("msdsm.mof", {values = {wdk_mof_header = "msdsmwmi.h"}})
-- set precompiled header
set_pcheader("precomp.h")
-- add links
add_links("mpio") |
|
usbview 是个图形界面应用程序 但不依赖于umdf |
Ok, I will modify wdk rules. Thanks! |
@ranwei1025 I add |
Uses the other given wdk directory (mount EWDK_rs3_release_svc_16299_171024-1647.iso to G:): $ xmake f --wdk="G:\Program Files\Windows Kits\10" -c
$ xmake |
Package driver and make *.cab file to build or the given output directory: $ xmake [p|package]
$ xmake [p|package] -o outputdir
|
Disable signing by defaulttarget("msdsm")
add_rules("wdk.wdm.driver") Test signing using builtin test certificatePlease run target("msdsm")
add_rules("wdk.env.wdm", "wdk.driver")
set_values("wdk.sign.mode", "test") Test signing using installed certificate in machinetarget("msdsm")
add_rules("wdk.env.wdm", "wdk.driver")
set_values("wdk.sign.mode", "test")
set_values("wdk.sign.thumbprint", "032122545DCAA6167B1ADBE5F7FDF07AE2234AAA") target("msdsm")
add_rules("wdk.env.wdm", "wdk.driver")
set_values("wdk.sign.mode", "test")
set_values("wdk.sign.store", "PrivateCertStore")
set_values("wdk.sign.company", "tboox.org(test)") Release signingtarget("msdsm")
add_rules("wdk.env.wdm", "wdk.driver")
set_values("wdk.sign.mode", "release")
set_values("wdk.sign.company", "xxxx")
set_values("wdk.sign.certfile", path.join(os.projectdir(), "xxxx.cer")) |
Compile driver target for low version windows (default: win10): set_values("wdk.env.winver", "win10")
set_values("wdk.env.winver", "win10_rs3")
set_values("wdk.env.winver", "win81")
set_values("wdk.env.winver", "win8")
set_values("wdk.env.winver", "win7")
set_values("wdk.env.winver", "win7_sp1")
set_values("wdk.env.winver", "win7_sp2")
set_values("wdk.env.winver", "win7_sp3") Format: nt4, win2k, winxp, ws03, win6, vista, ws08, longhorn, win7, win8, win81, winblue, win10 + '_' + sp1, sp2, sp3, th2, rs1, rs2, rs3 Or we can configure winver via command line: $ xmake f --wdk_winver=win10_rs3 Add some builtin values for windows sdk version, for examples: target("test")
on_load(function (target)
local winnt_version = target:values("wdk.env.winnt_version")
if winnt_version > "0x0A000000" then
target:add("defines", "TEST")
end
end)
|
References
Tests
Please download xmake-v2.2.1-dev and try it.
Online Docs
https://xmake.io/#/home?id=wdk-driver-program
Roadmap
xmake package
The text was updated successfully, but these errors were encountered: