summaryrefslogtreecommitdiffstats
path: root/Tests/JavaJavah
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@sap.com>2016-01-19 08:52:04 (GMT)
committerBrad King <brad.king@kitware.com>2016-01-19 15:36:11 (GMT)
commit18c3714f4f4cf35f2b040d887850cb3607345e5d (patch)
tree93d857c6d02f2b19a8bd4e7b8b4ee72a03ce8cd5 /Tests/JavaJavah
parent249aac71d0b0022031d16963f3b46f9860919104 (diff)
downloadCMake-18c3714f4f4cf35f2b040d887850cb3607345e5d.zip
CMake-18c3714f4f4cf35f2b040d887850cb3607345e5d.tar.gz
CMake-18c3714f4f4cf35f2b040d887850cb3607345e5d.tar.bz2
UseJava: Fix create_javah CLASSPATH handling on Windows
Preserve semicolons in the value.
Diffstat (limited to 'Tests/JavaJavah')
-rw-r--r--Tests/JavaJavah/C.cpp10
-rw-r--r--Tests/JavaJavah/C.java19
-rw-r--r--Tests/JavaJavah/CMakeLists.txt9
-rw-r--r--Tests/JavaJavah/HelloWorld2.java5
4 files changed, 40 insertions, 3 deletions
diff --git a/Tests/JavaJavah/C.cpp b/Tests/JavaJavah/C.cpp
new file mode 100644
index 0000000..ec75f42
--- /dev/null
+++ b/Tests/JavaJavah/C.cpp
@@ -0,0 +1,10 @@
+
+#include <jni.h>
+#include <stdio.h>
+
+#include "C.h"
+
+JNIEXPORT void JNICALL Java_C_printName(JNIEnv *, jobject)
+{
+ printf("C\n");
+}
diff --git a/Tests/JavaJavah/C.java b/Tests/JavaJavah/C.java
new file mode 100644
index 0000000..54b1be2
--- /dev/null
+++ b/Tests/JavaJavah/C.java
@@ -0,0 +1,19 @@
+class C
+{
+ public C()
+ {
+ }
+
+ public native void printName();
+
+ static {
+ try {
+
+ System.loadLibrary("B");
+
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load.\n" + e);
+ System.exit(1);
+ }
+ }
+}
diff --git a/Tests/JavaJavah/CMakeLists.txt b/Tests/JavaJavah/CMakeLists.txt
index 83b0ad0..071bf20 100644
--- a/Tests/JavaJavah/CMakeLists.txt
+++ b/Tests/JavaJavah/CMakeLists.txt
@@ -9,10 +9,13 @@ include (UseJava)
# JNI support
find_package(JNI)
-add_jar(hello3 B.java HelloWorld2.java)
-create_javah(TARGET B_javah CLASSES B CLASSPATH hello3)
+add_jar(B1 B.java)
+add_jar(C1 C.java)
+create_javah(TARGET B_javah CLASSES B C CLASSPATH B1 C1)
-add_library(B SHARED B.cpp)
+add_jar(hello3 HelloWorld2.java)
+
+add_library(B SHARED B.cpp C.cpp)
add_dependencies(B B_javah)
target_include_directories(B PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
diff --git a/Tests/JavaJavah/HelloWorld2.java b/Tests/JavaJavah/HelloWorld2.java
index faf7277..5ff710f 100644
--- a/Tests/JavaJavah/HelloWorld2.java
+++ b/Tests/JavaJavah/HelloWorld2.java
@@ -5,6 +5,11 @@ class HelloWorld2
B b;
b = new B();
b.printName();
+
+ C c;
+ c = new C();
+ c.printName();
+
System.out.println("Hello World!");
}
}