UseJava: Fix create_javah CLASSPATH handling on Windows

Preserve semicolons in the value.
This commit is contained in:
Marc Chevrier authored and Brad King committed 2016-01-19 10:36:11 -05:00
1 parent 249aac71d0
commit 18c3714f4f
5 files changed
+42 -5

No files matched your search

+2 -2
View File
@@ -1212,7 +1212,7 @@ function (create_javah)
set (_output_files)
if (WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
set(_classpath_sep ";")
set(_classpath_sep "$<SEMICOLON>")
else ()
set(_classpath_sep ":")
endif()
@@ -1242,7 +1242,7 @@ function (create_javah)
endif()
endforeach()
string (REPLACE ";" "${_classpath_sep}" _classpath "${_classpath}")
list (APPEND _javah_options -classpath ${_classpath})
list (APPEND _javah_options -classpath "${_classpath}")
endif()
if (_create_javah_OUTPUT_DIR)
+10
View File
@@ -0,0 +1,10 @@
#include <jni.h>
#include <stdio.h>
#include "C.h"
JNIEXPORT void JNICALL Java_C_printName(JNIEnv *, jobject)
{
printf("C\n");
}
+19
View File
@@ -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);
}
}
}
+6 -3
View File
@@ -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}
+5
View File
@@ -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!");
}
}