summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorruki <[email protected]>2022-09-27 00:42:29 +0800
committerruki <[email protected]>2022-09-27 00:42:29 +0800
commit411e455ba256d4f67289a267f62a74930212c8f9 (patch)
tree37f7de08a517453c1370fa5541d880690598fa1b /tests
parent76bced915dfb870a34528270a02236a3f5f6ff4e (diff)
add set_base to rules
Diffstat (limited to 'tests')
-rw-r--r--tests/apis/rules_override_cxx/src/main.xx6
-rw-r--r--tests/apis/rules_override_cxx/xmake.lua26
-rw-r--r--tests/apis/rules_override_order/src/main.cc6
-rw-r--r--tests/apis/rules_override_order/xmake.lua15
-rw-r--r--tests/projects/c++/unity_build/src/test.cpp8
5 files changed, 61 insertions, 0 deletions
diff --git a/tests/apis/rules_override_cxx/src/main.xx b/tests/apis/rules_override_cxx/src/main.xx
new file mode 100644
index 000000000..d612d8782
--- /dev/null
+++ b/tests/apis/rules_override_cxx/src/main.xx
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(int argc, char** argv)
+{
+ return 0;
+}
diff --git a/tests/apis/rules_override_cxx/xmake.lua b/tests/apis/rules_override_cxx/xmake.lua
new file mode 100644
index 000000000..0dc2261ca
--- /dev/null
+++ b/tests/apis/rules_override_cxx/xmake.lua
@@ -0,0 +1,26 @@
+rule("xx.build")
+ set_base("c++.build")
+ set_extensions(".xx")
+ on_load(function (target)
+ local sourcebatch = target:sourcebatches()["xx.build"]
+ sourcebatch.sourcekind = "cxx"
+ sourcebatch.objectfiles = {}
+ sourcebatch.dependfiles = {}
+ for _, sourcefile in ipairs(sourcebatch.sourcefiles) do
+ local objectfile = target:objectfile(sourcefile)
+ local dependfile = target:dependfile(objectfile)
+ 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")
+
diff --git a/tests/apis/rules_override_order/src/main.cc b/tests/apis/rules_override_order/src/main.cc
new file mode 100644
index 000000000..d612d8782
--- /dev/null
+++ b/tests/apis/rules_override_order/src/main.cc
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(int argc, char** argv)
+{
+ return 0;
+}
diff --git a/tests/apis/rules_override_order/xmake.lua b/tests/apis/rules_override_order/xmake.lua
new file mode 100644
index 000000000..61b42a943
--- /dev/null
+++ b/tests/apis/rules_override_order/xmake.lua
@@ -0,0 +1,15 @@
+rule("cppfront")
+ set_extensions(".cpp2")
+ on_build_files(function (target, batchjobs, sourcebatch, opt)
+ print("on_build_files")
+ end, {batch = true, distcc = true})
+
+rule("xx")
+ set_base("c++")
+ add_deps("cppfront", {order = true})
+
+target("test")
+ set_kind("binary")
+ add_rules("xx")
+ add_files("src/*.cc")
+
diff --git a/tests/projects/c++/unity_build/src/test.cpp b/tests/projects/c++/unity_build/src/test.cpp
new file mode 100644
index 000000000..27d41ee50
--- /dev/null
+++ b/tests/projects/c++/unity_build/src/test.cpp
@@ -0,0 +1,8 @@
+#include "header.h"
+
+int main(int argc, char** argv)
+{
+ std::string s("xmake");
+ printf("hello %s!\n", s.c_str());
+ return 0;
+}