summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-06-26 12:35:33 +0800
committerGitHub <[email protected]>2023-06-26 12:35:33 +0800
commit85d99167743dd858b846509dd579ea06852bc76e (patch)
tree315f74a660f9e3ee122d90d4603fa6a9a86b6bcf
parent835dfe13cc65031f0c517d010819e9215cfad9bb (diff)
parent1d389f2649d2bef24764304d6c5370410a092b9f (diff)
Merge pull request #3888 from heheda123123/patch-7
fix generate ninja proj bug
-rw-r--r--xmake/plugins/project/ninja/build_ninja.lua23
1 files changed, 17 insertions, 6 deletions
diff --git a/xmake/plugins/project/ninja/build_ninja.lua b/xmake/plugins/project/ninja/build_ninja.lua
index 728c69d72..fd3280b43 100644
--- a/xmake/plugins/project/ninja/build_ninja.lua
+++ b/xmake/plugins/project/ninja/build_ninja.lua
@@ -74,14 +74,25 @@ end
-- translate compiler flags
function _translate_compflags(compflags, outputdir)
local flags = {}
+ local last_flag = nil;
for _, flag in ipairs(compflags) do
- for _, pattern in ipairs({"[%-](I)(.*)", "[%-](isystem)(.*)"}) do
- flag = flag:gsub(pattern, function (flag, dir)
- dir = _get_relative_unix_path(dir, outputdir)
- return "-" .. flag .. dir
- end)
+ if flag == "-I" or flag == "-isystem" then
+ last_flag = flag
+ else
+ if last_flag == "-I" or last_flag == "-isystem" then
+ table.insert(flags, last_flag)
+ flag = _get_relative_unix_path(flag, outputdir)
+ else
+ last_flag = flag
+ for _, pattern in ipairs({"[%-](I)(.*)", "[%-](isystem)(.*)"}) do
+ flag = flag:gsub(pattern, function (flag, dir)
+ dir = _get_relative_unix_path(dir, outputdir)
+ return "-" .. flag .. dir
+ end)
+ end
+ end
+ table.insert(flags, flag)
end
- table.insert(flags, flag)
end
return flags
end