summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxq114 <[email protected]>2021-03-07 18:03:03 +0800
committerxq114 <[email protected]>2021-03-07 18:03:03 +0800
commite218951f6b0bd3ddbd3ce1c03b9ee2115bd66105 (patch)
tree484c50af1b945a3539b4c3c232f3972475f8c2bb
parent5f3ed1310bf369c12d6fe0e3d93325f2a3f8b7f9 (diff)
add find_nvtx.lua for windows
-rw-r--r--xmake/modules/detect/packages/find_nvtx.lua66
1 files changed, 66 insertions, 0 deletions
diff --git a/xmake/modules/detect/packages/find_nvtx.lua b/xmake/modules/detect/packages/find_nvtx.lua
new file mode 100644
index 000000000..83f999ded
--- /dev/null
+++ b/xmake/modules/detect/packages/find_nvtx.lua
@@ -0,0 +1,66 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015-present, TBOOX Open Source Group.
+--
+-- @author xq114
+-- @file find_nvtx.lua
+--
+
+-- imports
+import("lib.detect.find_path")
+import("lib.detect.find_library")
+
+-- find nvtx
+--
+-- @param opt the package options. e.g. see the options of find_package()
+--
+-- @return see the return value of find_package()
+--
+function main(opt)
+
+ -- for windows platform
+ if opt.plat == "windows" then
+
+ -- init bits
+ local rdir = (opt.arch == "x64" and "x64" or "Win32")
+ local libname = (opt.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"}))
+
+ -- ok
+ return result
+ end
+end