From 5469bf4da989e804f5bae0f4f6d5b93adbd5e2f4 Mon Sep 17 00:00:00 2001 From: ruki Date: Wed, 28 Feb 2024 23:57:05 +0800 Subject: fix batchcmds:compilev --- xmake/modules/private/utils/batchcmds.lua | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'xmake/modules/private/utils/batchcmds.lua') diff --git a/xmake/modules/private/utils/batchcmds.lua b/xmake/modules/private/utils/batchcmds.lua index 4fa2514c9..feba05b3c 100644 --- a/xmake/modules/private/utils/batchcmds.lua +++ b/xmake/modules/private/utils/batchcmds.lua @@ -284,14 +284,16 @@ function batchcmds:compilev(argv, opt) end -- we need to translate path for the project generator + local patterns = {"(^[%-/]external:I)(.*)", "(^[%-/]I)(.*)", "(^[%-/]Fp)(.*)", "(^[%-/]Fd)(.*)"} for idx, item in ipairs(argv) do if type(item) == "string" then - if item:startswith("-I") then - argv[idx] = path(item:sub(3), function (p) return "-I" .. p end) - elseif item:startswith("/I") then - argv[idx] = path(item:sub(3), function (p) return "/I" .. p end) - elseif item:startswith("-external:I") or item:startswith("/external:I") then - argv[idx] = path(item:sub(12), function (p) return "-external:I" .. p end) + for _, pattern in ipairs(patterns) do + local _, count = item:gsub(pattern, function (prefix, value) + argv[idx] = path(value, function (p) return prefix .. p end) + end) + if count > 0 then + break + end end end end -- cgit v1.3.1