summaryrefslogtreecommitdiff
path: root/xmake/rules
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/rules')
-rw-r--r--xmake/rules/c++/modules/support.lua10
-rw-r--r--xmake/rules/utils/glsl2spv/xmake.lua3
-rw-r--r--xmake/rules/utils/hlsl2spv/xmake.lua3
3 files changed, 13 insertions, 3 deletions
diff --git a/xmake/rules/c++/modules/support.lua b/xmake/rules/c++/modules/support.lua
index 126e25c61..38df28a05 100644
--- a/xmake/rules/c++/modules/support.lua
+++ b/xmake/rules/c++/modules/support.lua
@@ -92,7 +92,15 @@ function get_cpplibrary_name(target)
end
elseif target:is_plat("macosx", "iphoneos", "watchos", "appletvos", "applexros", "bsd", "harmony") then
return "c++"
- elseif target:is_plat("linux", "mingw", "cygwin", "msys", "haiku") then
+ elseif target:is_plat("linux", "cygwin", "msys", "haiku") then
+ return "stdc++"
+ elseif target:is_plat("mingw") then
+ local toolchain_inst = target:toolchain("mingw")
+ local is_clang = (toolchain_inst and toolchain_inst:config("clang")) or
+ target:has_tool("cxx", "clang", "clangxx", "clang_cl")
+ if is_clang then
+ return "c++"
+ end
return "stdc++"
elseif target:is_plat("windows") then
return "msstl"
diff --git a/xmake/rules/utils/glsl2spv/xmake.lua b/xmake/rules/utils/glsl2spv/xmake.lua
index 01abc561a..0374c2fe6 100644
--- a/xmake/rules/utils/glsl2spv/xmake.lua
+++ b/xmake/rules/utils/glsl2spv/xmake.lua
@@ -43,6 +43,7 @@
--
rule("utils.glsl2spv")
set_extensions(".vert", ".tesc", ".tese", ".geom", ".comp", ".frag", ".comp", ".mesh", ".task", ".rgen", ".rint", ".rahit", ".rchit", ".rmiss", ".rcall", ".glsl")
+ add_orders("utils.glsl2spv", "c++.build.modules.scanner")
on_load(function (target)
local is_bin2c = target:extraconf("rules", "utils.glsl2spv", "bin2c")
if is_bin2c then
@@ -53,7 +54,7 @@ rule("utils.glsl2spv")
target:add("includedirs", headerdir)
end
end)
- before_buildcmd_file(function (target, batchcmds, sourcefile_glsl, opt)
+ on_preparecmd_file(function (target, batchcmds, sourcefile_glsl, opt)
import("lib.detect.find_tool")
import("rules.utils.bin2obj.utils", {alias = "bin2obj_utils", rootdir = os.programdir()})
import("rules.utils.bin2c.utils", {alias = "bin2c_utils", rootdir = os.programdir()})
diff --git a/xmake/rules/utils/hlsl2spv/xmake.lua b/xmake/rules/utils/hlsl2spv/xmake.lua
index 750574eac..5eab8b25d 100644
--- a/xmake/rules/utils/hlsl2spv/xmake.lua
+++ b/xmake/rules/utils/hlsl2spv/xmake.lua
@@ -43,6 +43,7 @@
--
rule("utils.hlsl2spv")
set_extensions(".hlsl")
+ add_orders("utils.hlsl2spv", "c++.build.modules.scanner")
on_load(function (target)
local is_bin2c = target:extraconf("rules", "utils.hlsl2spv", "bin2c")
if is_bin2c then
@@ -54,7 +55,7 @@ rule("utils.hlsl2spv")
end
end)
- before_buildcmd_file(function (target, batchcmds, sourcefile_hlsl, opt)
+ on_preparecmd_file(function (target, batchcmds, sourcefile_hlsl, opt)
import("lib.detect.find_tool")
import("rules.utils.bin2obj.utils", {alias = "bin2obj_utils", rootdir = os.programdir()})
import("rules.utils.bin2c.utils", {alias = "bin2c_utils", rootdir = os.programdir()})