summaryrefslogtreecommitdiff
path: root/tests/projects/c++
diff options
context:
space:
mode:
Diffstat (limited to 'tests/projects/c++')
-rw-r--r--tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc5
-rw-r--r--tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h3
-rw-r--r--tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua7
-rw-r--r--tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc10
-rw-r--r--tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h3
-rw-r--r--tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua22
-rw-r--r--tests/projects/c++/package_linkgroups/src/main.cc9
-rw-r--r--tests/projects/c++/package_linkgroups/test.lua7
-rw-r--r--tests/projects/c++/package_linkgroups/xmake.lua35
9 files changed, 101 insertions, 0 deletions
diff --git a/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc
new file mode 100644
index 000000000..67b10df8c
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.cc
@@ -0,0 +1,5 @@
+#include "add.h"
+
+int add(int x, int y) {
+ return x + y;
+}
diff --git a/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h
new file mode 100644
index 000000000..43073ff76
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/3rd/dpdk/src/add.h
@@ -0,0 +1,3 @@
+#pragma once
+
+int add(int x, int y);
diff --git a/tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua b/tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua
new file mode 100644
index 000000000..8b10c9c7a
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/3rd/dpdk/xmake.lua
@@ -0,0 +1,7 @@
+add_rules("mode.debug", "mode.release")
+
+target("dpdk_add")
+ set_kind("static")
+ add_files("src/add.cc")
+ add_headerfiles("src/*.h")
+
diff --git a/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc
new file mode 100644
index 000000000..d56a165a4
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.cc
@@ -0,0 +1,10 @@
+#include "mul.h"
+#include "add.h"
+
+int mul(int x, int y) {
+ int result = 0;
+ for (int i = 0; i < y; i++) {
+ result = add(result, x);
+ }
+ return result;
+}
diff --git a/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h
new file mode 100644
index 000000000..a025f44bd
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/3rd/spdk/src/mul.h
@@ -0,0 +1,3 @@
+#pragma once
+
+int mul(int x, int y);
diff --git a/tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua b/tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua
new file mode 100644
index 000000000..329663840
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/3rd/spdk/xmake.lua
@@ -0,0 +1,22 @@
+add_rules("mode.debug", "mode.release")
+
+package("dpdk")
+ set_sourcedir(path.join(os.scriptdir(), "../../3rd/dpdk"))
+ on_install("linux", function (package)
+ import("package.tools.xmake").install(package)
+ end)
+ on_test(function (package)
+ assert(package:has_cxxincludes("add.h"))
+ end)
+package_end()
+
+add_includedirs("src")
+
+add_requires("dpdk")
+
+target("spdk_mul")
+ set_kind("static")
+ add_files("src/mul.cc")
+ add_headerfiles("src/*.h")
+ add_packages("dpdk")
+
diff --git a/tests/projects/c++/package_linkgroups/src/main.cc b/tests/projects/c++/package_linkgroups/src/main.cc
new file mode 100644
index 000000000..3115830fe
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/src/main.cc
@@ -0,0 +1,9 @@
+#include <iostream>
+#include "mul.h"
+
+
+int main(int argc, char** argv) {
+ int s = mul(3, 4);
+ std::cout << "hello world! " << s << std::endl;
+ return 0;
+}
diff --git a/tests/projects/c++/package_linkgroups/test.lua b/tests/projects/c++/package_linkgroups/test.lua
new file mode 100644
index 000000000..8ef455de2
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/test.lua
@@ -0,0 +1,7 @@
+function main(t)
+ if not is_host("linux") then
+ return
+ end
+ t:build()
+end
+
diff --git a/tests/projects/c++/package_linkgroups/xmake.lua b/tests/projects/c++/package_linkgroups/xmake.lua
new file mode 100644
index 000000000..fcc4b5edf
--- /dev/null
+++ b/tests/projects/c++/package_linkgroups/xmake.lua
@@ -0,0 +1,35 @@
+add_rules("mode.debug", "mode.release")
+
+package("dpdk")
+ set_sourcedir(path.join(os.scriptdir(), "3rd/dpdk"))
+ add_links("dpdk_add")
+ add_linkgroups("dpdk_add", {name = "dpdk", whole = true, group = true})
+ on_install("linux", function (package)
+ import("package.tools.xmake").install(package)
+ end)
+ on_test(function (package)
+ assert(package:has_cxxincludes("add.h"))
+ end)
+package_end()
+
+package("spdk")
+ set_sourcedir(path.join(os.scriptdir(), "3rd/spdk"))
+ add_deps("dpdk")
+ add_links("spdk_mul")
+ add_linkgroups("spdk_mul", {name = "dpdk", whole = true, group = true})
+ on_install("linux", function (package)
+ import("package.tools.xmake").install(package)
+ end)
+ on_test(function (package)
+ assert(package:has_cxxincludes("mul.h"))
+ end)
+package_end()
+
+add_requires("spdk")
+
+target("test")
+ set_kind("binary")
+ add_files("src/main.cc")
+ add_packages("spdk")
+ add_includedirs("src")
+