]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | find_package(Java COMPONENTS Development REQUIRED) |
2 | find_package(JNI REQUIRED) | |
3 | include(UseJava) | |
4 | ||
5 | set(java_srcs | |
6 | java/com/ceph/crush/Bucket.java | |
7 | java/com/ceph/fs/CephAlreadyMountedException.java | |
8 | java/com/ceph/fs/CephFileAlreadyExistsException.java | |
9 | java/com/ceph/fs/CephFileExtent.java | |
10 | java/com/ceph/fs/CephMount.java | |
11 | java/com/ceph/fs/CephNativeLoader.java | |
12 | java/com/ceph/fs/CephNotDirectoryException.java | |
13 | java/com/ceph/fs/CephNotMountedException.java | |
14 | java/com/ceph/fs/CephPoolException.java | |
15 | java/com/ceph/fs/CephStat.java | |
16 | java/com/ceph/fs/CephStatVFS.java) | |
17 | ||
28e407b8 | 18 | # note: for the -source 1.7 builds, we add |
7c673cae FG |
19 | # -Xlint:-options |
20 | # to get rid of the warning | |
28e407b8 | 21 | # warning: [options] bootstrap class path not set in conjunction with -source 1.7 |
7c673cae FG |
22 | # as per |
23 | # https://blogs.oracle.com/darcy/entry/bootclasspath_older_source | |
28e407b8 AA |
24 | set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.7" "-target" "1.7" "-Xlint:-options") |
25 | set(jni_header_dir "${CMAKE_CURRENT_BINARY_DIR}/native") | |
26 | if(Java_VERSION VERSION_LESS 1.8) | |
27 | add_jar(libcephfs ${java_srcs}) | |
28 | get_property(libcephfs_jar TARGET libcephfs PROPERTY JAR_FILE) | |
29 | set(java_h native/com_ceph_fs_CephMount.h) | |
30 | add_custom_command( | |
31 | OUTPUT ${java_h} | |
32 | COMMAND ${Java_JAVAH_EXECUTABLE} -classpath ${libcephfs_jar} -jni -o ${java_h} com.ceph.fs.CephMount | |
33 | COMMENT "Building C header files from classes...") | |
34 | add_custom_target(jni-header | |
35 | DEPENDS ${java_h}) | |
36 | add_dependencies(jni-header libcephfs) | |
37 | else() | |
38 | if(CMAKE_VERSION VERSION_LESS 3.11) | |
39 | set(CMAKE_JAVA_COMPILE_FLAGS ${CMAKE_JAVA_COMPILE_FLAGS} "-h" ${jni_header_dir}) | |
40 | add_jar(libcephfs ${java_srcs}) | |
41 | add_custom_target( | |
42 | jni-header | |
43 | DEPENDS libcephfs) | |
44 | add_dependencies(jni-header libcephfs) | |
45 | else() | |
46 | add_jar(libcephfs ${java_srcs} | |
47 | GENERATE_NATIVE_HEADERS jni-header | |
48 | DESTINATION ${jni_header_dir}) | |
49 | endif() | |
50 | get_property(libcephfs_jar TARGET libcephfs PROPERTY JAR_FILE) | |
51 | endif() | |
7c673cae | 52 | install_jar(libcephfs share/java) |
7c673cae FG |
53 | |
54 | find_jar(JUNIT_JAR | |
94b18763 | 55 | NAMES junit4 junit |
7c673cae FG |
56 | PATHS "/usr/share/java") |
57 | if(JUNIT_JAR) | |
58 | set(CMAKE_JAVA_INCLUDE_PATH ${JUNIT_JAR} ${libcephfs_jar}) | |
59 | set(java_test_srcs | |
60 | test/com/ceph/fs/CephAllTests.java | |
61 | test/com/ceph/fs/CephDoubleMountTest.java | |
62 | test/com/ceph/fs/CephMountCreateTest.java | |
63 | test/com/ceph/fs/CephMountTest.java | |
64 | test/com/ceph/fs/CephUnmountedTest.java) | |
65 | add_jar(libcephfs-test ${java_test_srcs}) | |
66 | add_dependencies(libcephfs-test libcephfs) | |
67 | install_jar(libcephfs-test share/java) | |
68 | endif(JUNIT_JAR) | |
69 | ||
70 | add_subdirectory(native) | |
71 | ||
72 | add_custom_target(java DEPENDS | |
73 | libcephfs.jar | |
74 | libcephfs_jni) |