Merge pull request #1350 from rouault/remove_jpwl_jp3d_mj2
[openjpeg.git] / wrapping / java / openjp2 / 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   ${OPENJPEG_SOURCE_DIR}/src/bin/common/opj_getopt.c
8   ${OPENJPEG_SOURCE_DIR}/src/bin/jp2/convert.c
9   index.c
10   )
11
12 # JNI binding:
13 find_package(JNI REQUIRED)
14 include_directories(${JNI_INCLUDE_DIRS})
15
16 # required header file:
17 include_directories(
18   ${OPENJPEG_BINARY_DIR}/src/lib/openjp2 # opj_config.h
19   ${OPENJPEG_SOURCE_DIR}/src/lib/openmj2
20   ${OPENJPEG_SOURCE_DIR}/src/bin/common
21   ${OPENJPEG_SOURCE_DIR}/src/bin/jp2
22   )
23
24 add_library(openjpegjni MODULE
25   ${openjpegjni_SRCS}
26   )
27 # Java module should not have a SONAME:
28 set_property(TARGET openjpegjni PROPERTY NO_SONAME 1)
29
30 # FIXME (need to use old API):
31 target_link_libraries(openjpegjni
32   ${PNG_LIBNAME} ${TIFF_LIBNAME} ${LCMS_LIBNAME} ${Z_LIBNAME}
33 )
34 if(UNIX)
35   target_link_libraries(openjpegjni m)
36 endif()
37
38 install(TARGETS openjpegjni
39   EXPORT OpenJPEGTargets
40   LIBRARY DESTINATION ${OPENJPEG_INSTALL_JNI_DIR} COMPONENT Libraries
41 )
42
43 # build jar:
44 find_package(Java 1.6 REQUIRED) # javac, jar
45
46 # build dep list:
47 file(GLOB java_srcs "java-sources/org/openJpeg/*.java")
48
49 # make sure target javac dir exists:
50 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes)
51 # Build java
52 add_custom_command(
53   OUTPUT ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
54   COMMAND ${Java_JAVAC_EXECUTABLE} -sourcepath  "${CMAKE_CURRENT_SOURCE_DIR}/java-sources"
55   ${java_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes
56   COMMAND ${Java_JAR_EXECUTABLE} cvf ${LIBRARY_OUTPUT_PATH}/openjpeg.jar org
57   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes
58   DEPENDS ${java_srcs}
59   COMMENT "javac *.java; jar cvf -> openjpeg.jar"
60 )
61
62 # name the target
63 add_custom_target(OpenJPEGJavaJar ALL
64   DEPENDS ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
65   COMMENT "building openjpeg.jar"
66 )
67
68 install(FILES ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
69   DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
70 )