summaryrefslogtreecommitdiff
path: root/test cases/java/9 jni/src
diff options
context:
space:
mode:
authorTristan Partin <tristan@partin.io>2022-01-26 00:33:58 -0600
committerEli Schwartz <eschwartz93@gmail.com>2022-03-02 16:23:09 -0500
commit96b2469544fba40e63d009db73b41c3b07b80684 (patch)
tree4d365b8e8c8a6a8784b55b37eefa2b8b33b2d09b /test cases/java/9 jni/src
parentf9bfeb2add70973113ab4a98454a5c5d7e3a26ae (diff)
downloadmeson-96b2469544fba40e63d009db73b41c3b07b80684.tar.gz
Rename JDK system dep to JNI
JNI is a more apt name because it currently only supports the JNI. I also believe that CMake uses the terminology JNI here as well. JNI is currently the only way to interact with the JVM through native code, but there is a project called "Project Panama" which aims to be another way for native code to interact with the JVM.
Diffstat (limited to 'test cases/java/9 jni/src')
-rw-r--r--test cases/java/9 jni/src/com/mesonbuild/JniTest.java15
-rw-r--r--test cases/java/9 jni/src/com/mesonbuild/meson.build3
-rw-r--r--test cases/java/9 jni/src/meson.build17
3 files changed, 35 insertions, 0 deletions
diff --git a/test cases/java/9 jni/src/com/mesonbuild/JniTest.java b/test cases/java/9 jni/src/com/mesonbuild/JniTest.java
new file mode 100644
index 000000000..f80b326c1
--- /dev/null
+++ b/test cases/java/9 jni/src/com/mesonbuild/JniTest.java
@@ -0,0 +1,15 @@
+package com.mesonbuild;
+
+public final class JniTest {
+ private static native int jni_test();
+
+ public static void main(String[] args) {
+ if (jni_test() != 0xdeadbeef) {
+ throw new RuntimeException("jdk_test() did not return 0");
+ }
+ }
+
+ static {
+ System.loadLibrary("jnijava");
+ }
+}
diff --git a/test cases/java/9 jni/src/com/mesonbuild/meson.build b/test cases/java/9 jni/src/com/mesonbuild/meson.build
new file mode 100644
index 000000000..3ee208326
--- /dev/null
+++ b/test cases/java/9 jni/src/com/mesonbuild/meson.build
@@ -0,0 +1,3 @@
+native_headers = javamod.generate_native_headers(
+ 'JniTest.java', package: 'com.mesonbuild', classes: ['JdkTest'])
+native_header_includes = include_directories('.')
diff --git a/test cases/java/9 jni/src/meson.build b/test cases/java/9 jni/src/meson.build
new file mode 100644
index 000000000..07a0664b0
--- /dev/null
+++ b/test cases/java/9 jni/src/meson.build
@@ -0,0 +1,17 @@
+jnijar = jar(
+ 'jnijar',
+ 'com' / 'mesonbuild' / 'JniTest.java',
+ main_class : 'com.mesonbuild.JniTest',
+)
+
+test(
+ 'jnitest',
+ java,
+ args: [
+ '-Djava.library.path=@0@'.format(fs.parent(jnijava.full_path())),
+ '-jar',
+ jnijar,
+ ],
+ protocol : 'exitcode',
+ depends : [jnijava],
+)