diff options
| author | ruki <[email protected]> | 2018-04-28 22:56:45 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-04-28 22:56:45 +0800 |
| commit | e2146da9cfcad7d53ab330252ebc74e4093b41fa (patch) | |
| tree | a1a2e1525bb485f112421894b1c476d758179904 /xmake/modules/detect/sdks/find_wdk.lua | |
| parent | cc90fd75c503493fdced6c7acce517e6874f44b8 (diff) | |
find umdf and kmdf version
Diffstat (limited to 'xmake/modules/detect/sdks/find_wdk.lua')
| -rw-r--r-- | xmake/modules/detect/sdks/find_wdk.lua | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/xmake/modules/detect/sdks/find_wdk.lua b/xmake/modules/detect/sdks/find_wdk.lua index 401346367..dae209737 100644 --- a/xmake/modules/detect/sdks/find_wdk.lua +++ b/xmake/modules/detect/sdks/find_wdk.lua @@ -43,6 +43,46 @@ function _find_sdkdir(sdkdir) return sdkdir end +-- find umdf version +function _find_umdfver(libdir, includedir) + + -- find versions + local versions = {} + for _, p in ipairs(os.files(path.join(includedir, "wdf", "umdf", "**", "wdf.h"))) do + table.insert(versions, path.filename(path.directory(p))) + end + + -- find version + local arch = config.arch() + if arch then + for _, ver in ipairs(versions) do + if os.isfile(path.join(libdir, "wdf", "umdf", arch, ver, "WdfDriverStubUm.lib")) then + return ver + end + end + end +end + +-- find kmdf version +function _find_kmdfver(libdir, includedir) + + -- find versions + local versions = {} + for _, p in ipairs(os.files(path.join(includedir, "wdf", "kmdf", "**", "wdf.h"))) do + table.insert(versions, path.filename(path.directory(p))) + end + + -- find version + local arch = config.arch() + if arch then + for _, ver in ipairs(versions) do + if os.isfile(path.join(libdir, "wdf", "kmdf", arch, ver, "wdfdriverentry.lib")) then + return ver + end + end + end +end + -- find WDK toolchains function _find_wdk(sdkdir, sdkver) @@ -78,8 +118,14 @@ function _find_wdk(sdkdir, sdkver) -- get the include directory local includedir = path.join(sdkdir, "Include") + -- get umdf version + local umdfver = _find_umdfver(libdir, includedir) + + -- get kmdf version + local kmdfver = _find_kmdfver(libdir, includedir) + -- get toolchains - return {sdkdir = sdkdir, bindir = bindir, libdir = libdir, includedir = includedir, sdkver = sdkver} + return {sdkdir = sdkdir, bindir = bindir, libdir = libdir, includedir = includedir, sdkver = sdkver, umdfver = umdfver, kmdfver = kmdfver} end -- find WDK toolchains |
