-set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.5" "-target" "1.5" "-Xlint:-options")
-add_jar(libcephfs ${java_srcs})
+set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.7" "-target" "1.7" "-Xlint:-options")
+set(jni_header_dir "${CMAKE_CURRENT_BINARY_DIR}/native")
+if(Java_VERSION VERSION_LESS 1.8)
+ add_jar(libcephfs ${java_srcs})
+ get_property(libcephfs_jar TARGET libcephfs PROPERTY JAR_FILE)
+ set(java_h native/com_ceph_fs_CephMount.h)
+ add_custom_command(
+ OUTPUT ${java_h}
+ COMMAND ${Java_JAVAH_EXECUTABLE} -classpath ${libcephfs_jar} -jni -o ${java_h} com.ceph.fs.CephMount
+ COMMENT "Building C header files from classes...")
+ add_custom_target(jni-header
+ DEPENDS ${java_h})
+ add_dependencies(jni-header libcephfs)
+else()
+ if(CMAKE_VERSION VERSION_LESS 3.11)
+ set(CMAKE_JAVA_COMPILE_FLAGS ${CMAKE_JAVA_COMPILE_FLAGS} "-h" ${jni_header_dir})
+ add_jar(libcephfs ${java_srcs})
+ add_custom_target(
+ jni-header
+ DEPENDS libcephfs)
+ add_dependencies(jni-header libcephfs)
+ else()
+ add_jar(libcephfs ${java_srcs}
+ GENERATE_NATIVE_HEADERS jni-header
+ DESTINATION ${jni_header_dir})
+ endif()
+ get_property(libcephfs_jar TARGET libcephfs PROPERTY JAR_FILE)
+endif()