Home | History | Annotate | Download | only in java
      1 set(JAR_FILE turbojpeg.jar)
      2 set(MANIFEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.MF)
      3 
      4 set(JAVA_CLASSNAMES org/libjpegturbo/turbojpeg/TJ
      5   org/libjpegturbo/turbojpeg/TJCompressor
      6   org/libjpegturbo/turbojpeg/TJCustomFilter
      7   org/libjpegturbo/turbojpeg/TJDecompressor
      8   org/libjpegturbo/turbojpeg/TJException
      9   org/libjpegturbo/turbojpeg/TJScalingFactor
     10   org/libjpegturbo/turbojpeg/TJTransform
     11   org/libjpegturbo/turbojpeg/TJTransformer
     12   org/libjpegturbo/turbojpeg/YUVImage
     13   TJUnitTest
     14   TJExample
     15   TJBench)
     16 
     17 if(MSVC_IDE)
     18   set(OBJDIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
     19 else()
     20   set(OBJDIR ${CMAKE_CURRENT_BINARY_DIR})
     21 endif()
     22 
     23 set(TURBOJPEG_DLL_NAME "turbojpeg")
     24 if(MINGW)
     25   set(TURBOJPEG_DLL_NAME "libturbojpeg")
     26 endif()
     27 configure_file(org/libjpegturbo/turbojpeg/TJLoader.java.in
     28   ${CMAKE_CURRENT_BINARY_DIR}/org/libjpegturbo/turbojpeg/TJLoader.java)
     29 
     30 set(JAVA_SOURCES "")
     31 set(JAVA_CLASSES "")
     32 set(JAVA_CLASSES_FULL "")
     33 foreach(class ${JAVA_CLASSNAMES})
     34   set(JAVA_SOURCES ${JAVA_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/${class}.java)
     35   set(JAVA_CLASSES ${JAVA_CLASSES} ${class}.class)
     36   set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL} ${OBJDIR}/${class}.class)
     37 endforeach()
     38 
     39 set(JAVA_SOURCES ${JAVA_SOURCES}
     40   ${CMAKE_CURRENT_BINARY_DIR}/org/libjpegturbo/turbojpeg/TJLoader.java)
     41 set(JAVA_CLASSES ${JAVA_CLASSES}
     42   org/libjpegturbo/turbojpeg/TJLoader.class)
     43 set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL}
     44   ${OBJDIR}/org/libjpegturbo/turbojpeg/TJLoader.class)
     45 
     46 string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}")
     47 add_custom_command(OUTPUT ${JAVA_CLASSES_FULL} DEPENDS ${JAVA_SOURCES}
     48   COMMAND ${JAVA_COMPILE} ARGS ${JAVACFLAGS} -d ${OBJDIR} ${JAVA_SOURCES})
     49 
     50 add_custom_command(OUTPUT ${JAR_FILE} DEPENDS ${JAVA_CLASSES_FULL}
     51   ${MANIFEST_FILE}
     52   COMMAND ${JAVA_ARCHIVE} cfm ${JAR_FILE} ${MANIFEST_FILE} ${JAVA_CLASSES}
     53   WORKING_DIRECTORY ${OBJDIR})
     54 
     55 add_custom_target(java ALL DEPENDS ${JAR_FILE})
     56 
     57 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JAR_FILE} DESTINATION classes)
     58