CMakeLists.txt 1.9 KB

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