Merge topic 'java-updates'
18c3714f UseJava: Fix create_javah CLASSPATH handling on Windows
This commit is contained in:
commit
606ad1764e
@ -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
Tests/JavaJavah/C.cpp
Normal file
10
Tests/JavaJavah/C.cpp
Normal 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
Tests/JavaJavah/C.java
Normal file
19
Tests/JavaJavah/C.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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!");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user