diff options
Diffstat (limited to 'xmake/modules/private/utils/batchcmds.lua')
| -rw-r--r-- | xmake/modules/private/utils/batchcmds.lua | 14 |
1 files changed, 8 insertions, 6 deletions
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 |
