As explained in the documentation cant be included multiple times.
[openjpeg.git] / applications / JavaOpenJPEG / CMakeLists.txt
index 6b1720b3fd3d3b404a78c746fa000ec71c1077f3..2f4a481bf3e99192b9413394babcdfe37b211e1e 100644 (file)
@@ -1,40 +1,47 @@
 #JavaOpenJPEG/CMakeLists.txt
 
 # First thing define the common source:
-SET(common_SRCS
-  ../codec/convert.c
-  ../codec/index.c
+SET(openjpegjni_SRCS
+  JavaOpenJPEGDecoder.c
+  JavaOpenJPEG.c
   )
 
-# If not getopt was found then add it to the lib:
-IF(DONT_HAVE_GETOPT)
-  SET(common_SRCS
-    ${common_SRCS}
-    ../common/getopt.c
-  )
-ENDIF(DONT_HAVE_GETOPT)
-
+# 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"
+)