Commit 18c3714f authored by Marc Chevrier's avatar Marc Chevrier Committed by Brad King

UseJava: Fix create_javah CLASSPATH handling on Windows

Preserve semicolons in the value.
parent 249aac71
......@@ -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)
......
#include <jni.h>
#include <stdio.h>
#include "C.h"
JNIEXPORT void JNICALL Java_C_printName(JNIEnv *, jobject)
{
printf("C\n");
}
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);
}
}
}
......@@ -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,6 +5,11 @@ class HelloWorld2
B b;
b = new B();
b.printName();
C c;
c = new C();
c.printName();
System.out.println("Hello World!");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment