summaryrefslogtreecommitdiff
path: root/applications/JavaOpenJPEG/CMakeLists.txt
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2012-01-20 14:08:59 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2012-01-20 14:08:59 +0000
commit452403d393c50bd4b5cb8f96a907332e6e5e678c (patch)
tree148e47933536bed28f1470e4b7714518f79f4a3c /applications/JavaOpenJPEG/CMakeLists.txt
parentfc268dff901855a27b7ebc3c1969e6c34c6c5694 (diff)
Build conditionally the java binding
Diffstat (limited to 'applications/JavaOpenJPEG/CMakeLists.txt')
-rw-r--r--applications/JavaOpenJPEG/CMakeLists.txt58
1 files changed, 36 insertions, 22 deletions
diff --git a/applications/JavaOpenJPEG/CMakeLists.txt b/applications/JavaOpenJPEG/CMakeLists.txt
index ecc8340d..2f4a481b 100644
--- a/applications/JavaOpenJPEG/CMakeLists.txt
+++ b/applications/JavaOpenJPEG/CMakeLists.txt
@@ -1,33 +1,47 @@
#JavaOpenJPEG/CMakeLists.txt
# First thing define the common source:
-SET(common_SRCS
- ../codec/convert.c
- ../codec/index.c
- ../common/opj_getopt.c
+SET(openjpegjni_SRCS
+ JavaOpenJPEGDecoder.c
+ JavaOpenJPEG.c
)
+# JNI binding:
+find_package(JNI REQUIRED)
+include_directories(${JNI_INCLUDE_DIRS})
-# Headers file are located here:
-INCLUDE_DIRECTORIES(
+# required header file:
+include_directories(
${OPENJPEG_SOURCE_DIR}/libopenjpeg
- ${LCMS_INCLUDE_DIR}
- ${PNG_INCLUDE_DIR}
- ${ZLIB_INCLUDE_DIR}
- ${TIFF_INCLUDE_DIR}
+ ${OPENJPEG_SOURCE_DIR}/applications/common
+ ${OPENJPEG_SOURCE_DIR}/applications/codec
)
-# Loop over all executables:
-FOREACH(exe j2k_to_image image_to_j2k)
- ADD_EXECUTABLE(${exe} ${exe}.c ${common_SRCS})
- TARGET_LINK_LIBRARIES(${exe} ${OPJ_PREFIX}openjpeg ${TIFF_LIBRARIES}
- ${PNG_LIBRARIES} ${ZLIB_LIBRARY} ${LCMS_LIB})
- # On unix you need to link to the math library:
- IF(UNIX)
- TARGET_LINK_LIBRARIES(${exe} -lm)
- ENDIF(UNIX)
- # Install exe
- INSTALL_TARGETS(/bin/ ${exe})
-ENDFOREACH(exe)
+add_library(openjpegjni MODULE
+ ${openjpegjni_SRCS}
+ )
+
+# build jar:
+FIND_PACKAGE(Java 1.5 REQUIRED) # javac, jar
+
+# build dep list:
+file(GLOB java_srcs "java-sources/org/openJpeg/*.java")
+# make sure target javac dir exists:
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes)
+# Build java
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
+ COMMAND ${Java_JAVAC_EXECUTABLE} -sourcepath "${CMAKE_CURRENT_SOURCE_DIR}/java-sources"
+ ${java_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes
+ COMMAND ${Java_JAR_EXECUTABLE} cvf ${LIBRARY_OUTPUT_PATH}/openjpeg.jar org
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes
+ DEPENDS ${java_srcs}
+ COMMENT "javac *.java; jar cvf -> openjpeg.jar"
+)
+# name the target
+ADD_CUSTOM_TARGET(OpenJPEGJavaJar ALL
+ DEPENDS ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
+ COMMENT "building openjpeg.jar"
+)