add nvtx (#1781)
parent
2922be0fa2
commit
4a023352fa
3 changed files with 67 additions and 1 deletions
@ -0,0 +1,60 @@ |
||||
import("lib.detect.find_path") |
||||
import("lib.detect.find_library") |
||||
import("detect.sdks.find_cuda") |
||||
|
||||
function _find_package(package, opt) |
||||
if package:is_plat("windows") then |
||||
local rdir = (package:is_arch("x64") and "x64" or "Win32") |
||||
local libname = (package:is_arch("x64") and "nvToolsExt64_1" or "nvToolsExt32_1") |
||||
|
||||
-- init search paths |
||||
local paths = { |
||||
"$(env NVTOOLSEXT_PATH)", |
||||
"$(env PROGRAMFILES)/NVIDIA Corporation/NvToolsExt" |
||||
} |
||||
|
||||
-- find library |
||||
local result = {links = {}, linkdirs = {}, includedirs = {}, libfiles = {}} |
||||
local linkinfo = find_library(libname, paths, {suffixes = path.join("lib", rdir)}) |
||||
if linkinfo then |
||||
local nvtx_dir = path.directory(path.directory(linkinfo.linkdir)) |
||||
table.insert(result.linkdirs, linkinfo.linkdir) |
||||
table.insert(result.links, libname) |
||||
table.insert(result.libfiles, path.join(nvtx_dir, "bin", rdir, libname .. ".dll")) |
||||
table.insert(result.libfiles, path.join(nvtx_dir, "lib", rdir, libname .. ".lib")) |
||||
else |
||||
-- not found? |
||||
return |
||||
end |
||||
|
||||
-- find include |
||||
table.insert(result.includedirs, find_path("nvToolsExt.h", paths, {suffixes = "include"})) |
||||
return result |
||||
else |
||||
local cuda = find_cuda() |
||||
if cuda then |
||||
local result = {links = {}, linkdirs = {}, includedirs = {}} |
||||
|
||||
-- find library |
||||
local linkinfo = find_library("nvToolsExt", cuda.linkdirs) |
||||
if linkinfo then |
||||
table.insert(result.links, "nvToolsExt") |
||||
table.insert(result.linkdirs, linkinfo.linkdir) |
||||
else |
||||
return |
||||
end |
||||
table.join2(result.includedirs, cuda.includedirs) |
||||
return result |
||||
end |
||||
end |
||||
end |
||||
|
||||
function main(package, opt) |
||||
if opt.system then |
||||
local result = _find_package(package, opt) |
||||
if not result then |
||||
result = package:find_package("nvtx", opt) |
||||
end |
||||
return result or false |
||||
end |
||||
end |
@ -0,0 +1,6 @@ |
||||
package("nvtx") |
||||
|
||||
set_homepage("https://github.com/NVIDIA/NVTX") |
||||
set_description("A C-based Application Programming Interface (API) for annotating events, code ranges, and resources in your applications.") |
||||
|
||||
on_fetch("fetch") |
Loading…
Reference in new issue