summaryrefslogtreecommitdiff
path: root/tests/projects/c++/shared_library_export_all
diff options
context:
space:
mode:
authorruki <[email protected]>2024-05-19 23:15:53 +0800
committerruki <[email protected]>2024-05-19 23:15:53 +0800
commitdad8fe9b2acda84bfbead2a05a8b0d4b504d6479 (patch)
tree610cc5fb68689e2ab35fec5d61330ec9d6f159cb /tests/projects/c++/shared_library_export_all
parent1dee088e701ace1ea4cdfe904a152caddfc55f42 (diff)
add export filter
Diffstat (limited to 'tests/projects/c++/shared_library_export_all')
-rw-r--r--tests/projects/c++/shared_library_export_all/src/bar.cpp5
-rw-r--r--tests/projects/c++/shared_library_export_all/src/bar.h4
-rw-r--r--tests/projects/c++/shared_library_export_all/src/foo.cpp3
-rw-r--r--tests/projects/c++/shared_library_export_all/src/foo.h3
-rw-r--r--tests/projects/c++/shared_library_export_all/src/main.cpp9
-rw-r--r--tests/projects/c++/shared_library_export_all/xmake.lua11
6 files changed, 25 insertions, 10 deletions
diff --git a/tests/projects/c++/shared_library_export_all/src/bar.cpp b/tests/projects/c++/shared_library_export_all/src/bar.cpp
new file mode 100644
index 000000000..a3065ed8b
--- /dev/null
+++ b/tests/projects/c++/shared_library_export_all/src/bar.cpp
@@ -0,0 +1,5 @@
+#include "bar.h"
+
+int bar::add(int a, int b) {
+ return a + b;
+}
diff --git a/tests/projects/c++/shared_library_export_all/src/bar.h b/tests/projects/c++/shared_library_export_all/src/bar.h
new file mode 100644
index 000000000..687386e0a
--- /dev/null
+++ b/tests/projects/c++/shared_library_export_all/src/bar.h
@@ -0,0 +1,4 @@
+class bar {
+public:
+ static int add(int a, int b);
+};
diff --git a/tests/projects/c++/shared_library_export_all/src/foo.cpp b/tests/projects/c++/shared_library_export_all/src/foo.cpp
index 3ab50856c..46635f458 100644
--- a/tests/projects/c++/shared_library_export_all/src/foo.cpp
+++ b/tests/projects/c++/shared_library_export_all/src/foo.cpp
@@ -1,6 +1,5 @@
#include "foo.h"
-int test::add(int a, int b)
-{
+int foo::add(int a, int b) {
return a + b;
}
diff --git a/tests/projects/c++/shared_library_export_all/src/foo.h b/tests/projects/c++/shared_library_export_all/src/foo.h
index f671c7d32..e27636b94 100644
--- a/tests/projects/c++/shared_library_export_all/src/foo.h
+++ b/tests/projects/c++/shared_library_export_all/src/foo.h
@@ -1,5 +1,4 @@
-class test
-{
+class foo {
public:
static int add(int a, int b);
};
diff --git a/tests/projects/c++/shared_library_export_all/src/main.cpp b/tests/projects/c++/shared_library_export_all/src/main.cpp
index e48f4730e..cc95897ee 100644
--- a/tests/projects/c++/shared_library_export_all/src/main.cpp
+++ b/tests/projects/c++/shared_library_export_all/src/main.cpp
@@ -1,10 +1,9 @@
#include "foo.h"
+#include "bar.h"
#include <iostream>
-using namespace std;
-
-int main(int argc, char** argv)
-{
- cout << "add(1, 2) = " << test::add(1, 2) << endl;
+int main(int argc, char** argv) {
+ std::cout << "foo::add(1, 2) = " << foo::add(1, 2) << std::endl;
+ std::cout << "bar::add(1, 2) = " << bar::add(1, 2) << std::endl;
return 0;
}
diff --git a/tests/projects/c++/shared_library_export_all/xmake.lua b/tests/projects/c++/shared_library_export_all/xmake.lua
index fa25fac50..73159d4b5 100644
--- a/tests/projects/c++/shared_library_export_all/xmake.lua
+++ b/tests/projects/c++/shared_library_export_all/xmake.lua
@@ -5,9 +5,18 @@ target("foo")
add_files("src/foo.cpp")
add_rules("utils.symbols.export_all", {export_classes = true})
+target("bar")
+ set_kind("shared")
+ add_files("src/bar.cpp")
+ add_rules("utils.symbols.export_all", {export_filter = function (symbol)
+ if symbol:find("add", 1, true) then
+ return true
+ end
+ end})
+
target("demo")
set_kind("binary")
- add_deps("foo")
+ add_deps("foo", "bar")
add_files("src/main.cpp")