diff options
Diffstat (limited to 'xmake/rules')
| -rw-r--r-- | xmake/rules/c++/modules/support.lua | 10 | ||||
| -rw-r--r-- | xmake/rules/utils/glsl2spv/xmake.lua | 3 | ||||
| -rw-r--r-- | xmake/rules/utils/hlsl2spv/xmake.lua | 3 |
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()}) |
