summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-09-27 23:05:58 +0800
committerruki <[email protected]>2022-09-27 23:05:58 +0800
commit96792611562600d3060d2f76b30b1c6dfda972e7 (patch)
tree50f34cad7379980487e8ec2880a33e4154107f0c
parentfa198c5925c5faf00db7946a31db4e9fc611dc91 (diff)
improve rules_override
-rw-r--r--tests/apis/rules_override_cxx/src/test.cc0
-rw-r--r--tests/apis/rules_override_cxx/test.lua3
-rw-r--r--tests/apis/rules_override_cxx/xmake.lua21
3 files changed, 14 insertions, 10 deletions
diff --git a/tests/apis/rules_override_cxx/src/test.cc b/tests/apis/rules_override_cxx/src/test.cc
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/apis/rules_override_cxx/src/test.cc
diff --git a/tests/apis/rules_override_cxx/test.lua b/tests/apis/rules_override_cxx/test.lua
new file mode 100644
index 000000000..a4a38b0ce
--- /dev/null
+++ b/tests/apis/rules_override_cxx/test.lua
@@ -0,0 +1,3 @@
+function main()
+ os.exec("xmake")
+end
diff --git a/tests/apis/rules_override_cxx/xmake.lua b/tests/apis/rules_override_cxx/xmake.lua
index 0dc2261ca..4b44d2111 100644
--- a/tests/apis/rules_override_cxx/xmake.lua
+++ b/tests/apis/rules_override_cxx/xmake.lua
@@ -1,8 +1,14 @@
-rule("xx.build")
- set_base("c++.build")
- set_extensions(".xx")
+rule("xx")
+ add_deps("c++")
on_load(function (target)
- local sourcebatch = target:sourcebatches()["xx.build"]
+
+ -- add .xx
+ local rule = target:rule("c++.build"):clone()
+ rule:set("extensions", ".xx")
+ target:rule_set("c++.build", rule)
+
+ -- patch sourcebatch for .xx
+ local sourcebatch = target:sourcebatches()["c++.build"]
sourcebatch.sourcekind = "cxx"
sourcebatch.objectfiles = {}
sourcebatch.dependfiles = {}
@@ -12,15 +18,10 @@ rule("xx.build")
table.insert(sourcebatch.objectfiles, objectfile)
table.insert(sourcebatch.dependfiles, dependfile)
end
- target:add("cxxflags", "-x c++")
end)
-rule("xx")
- set_base("c++")
- add_deps("xx.build")
-
target("test")
set_kind("binary")
add_rules("xx")
- add_files("src/*.xx")
+ add_files("src/*.xx", "src/*.cc")