diff options
| author | ruki <[email protected]> | 2023-06-26 12:35:33 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-06-26 12:35:33 +0800 |
| commit | 85d99167743dd858b846509dd579ea06852bc76e (patch) | |
| tree | 315f74a660f9e3ee122d90d4603fa6a9a86b6bcf | |
| parent | 835dfe13cc65031f0c517d010819e9215cfad9bb (diff) | |
| parent | 1d389f2649d2bef24764304d6c5370410a092b9f (diff) | |
Merge pull request #3888 from heheda123123/patch-7
fix generate ninja proj bug
| -rw-r--r-- | xmake/plugins/project/ninja/build_ninja.lua | 23 |
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 |
