]> git.proxmox.com Git - ceph.git/blame - ceph/src/java/CMakeLists.txt
update sources to 12.2.7
[ceph.git] / ceph / src / java / CMakeLists.txt
CommitLineData
7c673cae
FG
1find_package(Java COMPONENTS Development REQUIRED)
2find_package(JNI REQUIRED)
3include(UseJava)
4
5set(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
24set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.7" "-target" "1.7" "-Xlint:-options")
25set(jni_header_dir "${CMAKE_CURRENT_BINARY_DIR}/native")
26if(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)
37else()
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)
51endif()
7c673cae 52install_jar(libcephfs share/java)
7c673cae
FG
53
54find_jar(JUNIT_JAR
94b18763 55 NAMES junit4 junit
7c673cae
FG
56 PATHS "/usr/share/java")
57if(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)
68endif(JUNIT_JAR)
69
70add_subdirectory(native)
71
72add_custom_target(java DEPENDS
73 libcephfs.jar
74 libcephfs_jni)