UseJava: Fix create_javah CLASSPATH handling on Windows
Preserve semicolons in the value.
This commit is contained in:
parent
249aac71d0
commit
18c3714f4f
|
@ -1212,7 +1212,7 @@ function (create_javah)
|
||||||
|
|
||||||
set (_output_files)
|
set (_output_files)
|
||||||
if (WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
if (WIN32 AND NOT CYGWIN AND CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
|
||||||
set(_classpath_sep ";")
|
set(_classpath_sep "$<SEMICOLON>")
|
||||||
else ()
|
else ()
|
||||||
set(_classpath_sep ":")
|
set(_classpath_sep ":")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1242,7 +1242,7 @@ function (create_javah)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
string (REPLACE ";" "${_classpath_sep}" _classpath "${_classpath}")
|
string (REPLACE ";" "${_classpath_sep}" _classpath "${_classpath}")
|
||||||
list (APPEND _javah_options -classpath ${_classpath})
|
list (APPEND _javah_options -classpath "${_classpath}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (_create_javah_OUTPUT_DIR)
|
if (_create_javah_OUTPUT_DIR)
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
#include <jni.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "C.h"
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_C_printName(JNIEnv *, jobject)
|
||||||
|
{
|
||||||
|
printf("C\n");
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,10 +9,13 @@ include (UseJava)
|
||||||
# JNI support
|
# JNI support
|
||||||
find_package(JNI)
|
find_package(JNI)
|
||||||
|
|
||||||
add_jar(hello3 B.java HelloWorld2.java)
|
add_jar(B1 B.java)
|
||||||
create_javah(TARGET B_javah CLASSES B CLASSPATH hello3)
|
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)
|
add_dependencies(B B_javah)
|
||||||
|
|
||||||
target_include_directories(B PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
|
target_include_directories(B PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
|
|
@ -5,6 +5,11 @@ class HelloWorld2
|
||||||
B b;
|
B b;
|
||||||
b = new B();
|
b = new B();
|
||||||
b.printName();
|
b.printName();
|
||||||
|
|
||||||
|
C c;
|
||||||
|
c = new C();
|
||||||
|
c.printName();
|
||||||
|
|
||||||
System.out.println("Hello World!");
|
System.out.println("Hello World!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue