summaryrefslogtreecommitdiff
path: root/tests/projects/other/autogen/autogen_binary_module/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2024-07-25 00:54:13 +0800
committerruki <[email protected]>2024-07-25 00:54:13 +0800
commitc7c412f6458f5aceeb02e9bfc292dc7aac0852d3 (patch)
tree90fc1076e7dd5a2971d7033bee28825a80e59477 /tests/projects/other/autogen/autogen_binary_module/xmake.lua
parent039cd576af844dc146b7517160648765b90b81b1 (diff)
move autogen tests
Diffstat (limited to 'tests/projects/other/autogen/autogen_binary_module/xmake.lua')
-rw-r--r--tests/projects/other/autogen/autogen_binary_module/xmake.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/projects/other/autogen/autogen_binary_module/xmake.lua b/tests/projects/other/autogen/autogen_binary_module/xmake.lua
new file mode 100644
index 000000000..b1617e543
--- /dev/null
+++ b/tests/projects/other/autogen/autogen_binary_module/xmake.lua
@@ -0,0 +1,32 @@
+add_rules("mode.debug", "mode.release")
+
+add_moduledirs("modules")
+
+rule("autogen")
+ set_extensions(".in")
+ before_build_file(function (target, sourcefile, opt)
+ import("utils.progress")
+ import("core.project.depend")
+ import("core.tool.compiler")
+ import("autogen.foo", {always_build = true})
+
+ local sourcefile_cx = path.join(target:autogendir(), "rules", "autogen", path.basename(sourcefile) .. ".cpp")
+ local objectfile = target:objectfile(sourcefile_cx)
+ table.insert(target:objectfiles(), objectfile)
+
+ depend.on_changed(function ()
+ progress.show(opt.progress, "${color.build.object}compiling.autogen %s", sourcefile)
+ os.mkdir(path.directory(sourcefile_cx))
+ foo.generate(sourcefile, sourcefile_cx)
+ compiler.compile(sourcefile_cx, objectfile, {target = target})
+ end, {dependfile = target:dependfile(objectfile),
+ files = sourcefile,
+ changed = target:is_rebuilt()})
+ end)
+
+target("test")
+ set_kind("binary")
+ add_rules("autogen")
+ add_files("src/main.cpp")
+ add_files("src/*.in")
+