summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-01-05 22:47:27 +0800
committerruki <[email protected]>2021-01-05 22:47:27 +0800
commitd58129c75b789ae464a2da4cd32b2463bd05065e (patch)
tree8a01f400e24cbd507511ede73eec62e127f20784
parent44441cbd19a5a0989ddc2c42dde5f32174f414fe (diff)
fix cmake paths
-rw-r--r--xmake/modules/package/tools/cmake.lua24
1 files changed, 20 insertions, 4 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index a126fe514..9c1d032bf 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -28,6 +28,22 @@ import("lib.detect.find_file")
import("lib.detect.find_tool")
import("package.tools.ninja")
+-- translate paths
+function _translate_paths(paths)
+ if is_host("windows") then
+ if type(paths) == "string" then
+ return (paths:gsub("\\", "/"))
+ elseif type(paths) == "table" then
+ local result = {}
+ for _, p in ipairs(paths) do
+ table.insert(result, (p:gsub("\\", "/")))
+ end
+ return result
+ end
+ end
+ return paths
+end
+
-- translate windows bin path
function _translate_windows_bin_path(bin_path)
if bin_path then
@@ -44,8 +60,8 @@ function _get_cflags_from_packagedeps(package, opt)
local fetchinfo = dep:fetch({external = false})
if fetchinfo then
table.join2(result, compiler.map_flags("cxx", "define", fetchinfo.defines))
- table.join2(result, compiler.map_flags("cxx", "includedir", fetchinfo.includedirs))
- table.join2(result, compiler.map_flags("cxx", "sysincludedir", fetchinfo.sysincludedirs))
+ table.join2(result, compiler.map_flags("cxx", "includedir", _translate_paths(fetchinfo.includedirs)))
+ table.join2(result, compiler.map_flags("cxx", "sysincludedir", _translate_paths(fetchinfo.sysincludedirs)))
end
end
end
@@ -60,9 +76,9 @@ function _get_ldflags_from_packagedeps(package, opt)
if dep then
local fetchinfo = dep:fetch({external = false})
if fetchinfo then
- table.join2(result, linker.map_flags("binary", {"cxx"}, "linkdir", fetchinfo.linkdirs))
+ table.join2(result, linker.map_flags("binary", {"cxx"}, "linkdir", _translate_paths(fetchinfo.linkdirs)))
table.join2(result, linker.map_flags("binary", {"cxx"}, "link", fetchinfo.links))
- table.join2(result, linker.map_flags("binary", {"cxx"}, "syslink", fetchinfo.syslinks))
+ table.join2(result, linker.map_flags("binary", {"cxx"}, "syslink", _translate_paths(fetchinfo.syslinks)))
end
end
end