Build conditionally the java binding
[openjpeg.git] / applications / JavaOpenJPEG / CMakeLists.txt
1 #JavaOpenJPEG/CMakeLists.txt
2
3 # First thing define the common source:
4 SET(openjpegjni_SRCS
5   JavaOpenJPEGDecoder.c
6   JavaOpenJPEG.c
7   )
8
9 # JNI binding:
10 find_package(JNI REQUIRED)
11 include_directories(${JNI_INCLUDE_DIRS})
12
13 # required header file:
14 include_directories(
15   ${OPENJPEG_SOURCE_DIR}/libopenjpeg
16   ${OPENJPEG_SOURCE_DIR}/applications/common
17   ${OPENJPEG_SOURCE_DIR}/applications/codec
18   )
19
20 add_library(openjpegjni MODULE
21   ${openjpegjni_SRCS}
22   )
23
24 # build jar:
25 FIND_PACKAGE(Java 1.5 REQUIRED) # javac, jar
26
27 # build dep list:
28 file(GLOB java_srcs "java-sources/org/openJpeg/*.java")
29
30 # make sure target javac dir exists:
31 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes)
32 # Build java
33 ADD_CUSTOM_COMMAND(
34   OUTPUT ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
35   COMMAND ${Java_JAVAC_EXECUTABLE} -sourcepath  "${CMAKE_CURRENT_SOURCE_DIR}/java-sources"
36   ${java_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes
37   COMMAND ${Java_JAR_EXECUTABLE} cvf ${LIBRARY_OUTPUT_PATH}/openjpeg.jar org
38   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes
39   DEPENDS ${java_srcs}
40   COMMENT "javac *.java; jar cvf -> openjpeg.jar"
41 )
42
43 # name the target
44 ADD_CUSTOM_TARGET(OpenJPEGJavaJar ALL
45   DEPENDS ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
46   COMMENT "building openjpeg.jar"
47 )