set(JAR_FILE turbojpeg.jar) set(MANIFEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.MF) set(JAVA_CLASSNAMES org/libjpegturbo/turbojpeg/TJ org/libjpegturbo/turbojpeg/TJCompressor org/libjpegturbo/turbojpeg/TJCustomFilter org/libjpegturbo/turbojpeg/TJDecompressor org/libjpegturbo/turbojpeg/TJScalingFactor org/libjpegturbo/turbojpeg/TJTransform org/libjpegturbo/turbojpeg/TJTransformer TJUnitTest TJExample) if(MSVC_IDE) set(OBJDIR "${CMAKE_CURRENT_BINARY_DIR}/$(OutDir)") else() set(OBJDIR ${CMAKE_CURRENT_BINARY_DIR}) endif() set(TURBOJPEG_DLL_NAME "turbojpeg") if(MINGW) set(TURBOJPEG_DLL_NAME "libturbojpeg") endif() configure_file(org/libjpegturbo/turbojpeg/TJLoader.java.in ${CMAKE_CURRENT_BINARY_DIR}/org/libjpegturbo/turbojpeg/TJLoader.java) set(JAVA_SOURCES "") set(JAVA_CLASSES "") set(JAVA_CLASSES_FULL "") foreach(class ${JAVA_CLASSNAMES}) set(JAVA_SOURCES ${JAVA_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/${class}.java) set(JAVA_CLASSES ${JAVA_CLASSES} ${class}.class) set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL} ${OBJDIR}/${class}.class) endforeach() set(JAVA_SOURCES ${JAVA_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/org/libjpegturbo/turbojpeg/TJLoader.java) set(JAVA_CLASSES ${JAVA_CLASSES} org/libjpegturbo/turbojpeg/TJLoader.class) set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL} ${OBJDIR}/org/libjpegturbo/turbojpeg/TJLoader.class) string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}") add_custom_command(OUTPUT ${JAVA_CLASSES_FULL} DEPENDS ${JAVA_SOURCES} COMMAND ${JAVA_COMPILE} ARGS ${JAVACFLAGS} -d ${OBJDIR} ${JAVA_SOURCES}) add_custom_command(OUTPUT ${JAR_FILE} DEPENDS ${JAVA_CLASSES_FULL} ${MANIFEST_FILE} COMMAND ${JAVA_ARCHIVE} cfm ${JAR_FILE} ${MANIFEST_FILE} ${JAVA_CLASSES} WORKING_DIRECTORY ${OBJDIR}) add_custom_target(java ALL DEPENDS ${JAR_FILE}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JAR_FILE} DESTINATION classes)