summaryrefslogtreecommitdiff
path: root/xmake/rules/cppfront/xmake.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/rules/cppfront/xmake.lua')
-rw-r--r--xmake/rules/cppfront/xmake.lua10
1 files changed, 8 insertions, 2 deletions
diff --git a/xmake/rules/cppfront/xmake.lua b/xmake/rules/cppfront/xmake.lua
index 86067a373..22663f184 100644
--- a/xmake/rules/cppfront/xmake.lua
+++ b/xmake/rules/cppfront/xmake.lua
@@ -22,7 +22,6 @@ rule("cppfront.build.h2")
set_extensions(".h2")
on_buildcmd_file(function (target, batchcmds, sourcefile_h2, opt)
-
-- get cppfront
import("lib.detect.find_tool")
local cppfront = assert(find_tool("cppfront", {check = "-h"}), "cppfront not found!")
@@ -65,7 +64,6 @@ rule("cppfront.build.cpp2")
end
end)
on_buildcmd_file(function (target, batchcmds, sourcefile_cpp2, opt)
-
-- get cppfront
import("lib.detect.find_tool")
local cppfront = assert(find_tool("cppfront", {check = "-h"}), "cppfront not found!")
@@ -78,6 +76,14 @@ rule("cppfront.build.cpp2")
local objectfile = target:objectfile(sourcefile_cpp)
table.insert(target:objectfiles(), objectfile)
+ -- add_depfiles for #include "xxxx/xxxx/xxx.h2" ,exclude // #include "xxxx.h2"
+ local root_dir = path.directory(sourcefile_cpp2)
+ for line in io.lines(sourcefile_cpp2) do
+ local match_h2 = line:match("^ -#include *\"([%w%p]+.h2)\"")
+ if match_h2 ~= nil then
+ batchcmds:add_depfiles(path.join(root_dir, match_h2))
+ end
+ end
-- add commands
local argv = {"-o", path(sourcefile_cpp), path(sourcefile_cpp2)}
batchcmds:show_progress(opt.progress, "${color.build.object}compiling.cpp2 %s", sourcefile_cpp2)