summaryrefslogtreecommitdiff
path: root/tests/projects
diff options
context:
space:
mode:
authorruki <[email protected]>2023-03-14 22:00:31 +0800
committerGitHub <[email protected]>2023-03-14 22:00:31 +0800
commitc1789f73dbee830047ea2eb7cd3b33fc782d6387 (patch)
tree01d4588ab1bf9293898e0390c7ca43c588ee2083 /tests/projects
parentd068e8a4c4f54da17dc964b1329b0d98c4b59149 (diff)
parentf6898c7129bfae5bfe6aa71563370d07517a81de (diff)
Merge pull request #3504 from compilelife/master
add swig java support
Diffstat (limited to 'tests/projects')
-rw-r--r--tests/projects/swig/java_c/src/example.c4
-rw-r--r--tests/projects/swig/java_c/src/example.i5
-rw-r--r--tests/projects/swig/java_c/xmake.lua21
3 files changed, 30 insertions, 0 deletions
diff --git a/tests/projects/swig/java_c/src/example.c b/tests/projects/swig/java_c/src/example.c
new file mode 100644
index 000000000..06f76c542
--- /dev/null
+++ b/tests/projects/swig/java_c/src/example.c
@@ -0,0 +1,4 @@
+int fact(int n) {
+ return n;
+}
+
diff --git a/tests/projects/swig/java_c/src/example.i b/tests/projects/swig/java_c/src/example.i
new file mode 100644
index 000000000..e952f6123
--- /dev/null
+++ b/tests/projects/swig/java_c/src/example.i
@@ -0,0 +1,5 @@
+%module example
+%{
+extern int fact(int n);
+%}
+extern int fact(int n);
diff --git a/tests/projects/swig/java_c/xmake.lua b/tests/projects/swig/java_c/xmake.lua
new file mode 100644
index 000000000..65e871ce6
--- /dev/null
+++ b/tests/projects/swig/java_c/xmake.lua
@@ -0,0 +1,21 @@
+add_rules("mode.release", "mode.debug")
+
+-- make sure you config to an enviroment with jni.h
+-- for example: xmake f -c -p android
+
+target("example")
+ set_kind('shared')
+ -- set moduletype to java
+ add_rules("swig.c", {moduletype = "java"})
+ -- use swigflags to provider package name and output path of java files
+ add_files("src/example.i", {swigflags = {
+ "-package",
+ "com.example",
+ "-outdir",
+ "build/java/com/example/"
+ }})
+ add_files("src/example.c")
+ before_build(function()
+ -- ensure output path exists before running swig
+ os.mkdir("build/java/com/example/")
+ end)