diff options
Diffstat (limited to 'tests/projects/c++')
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") + |
