Include TurboJPEG/OSS Java wrapper JAR in Windows distribution packages

This commit is contained in:
DRC
2011-04-01 11:13:11 +00:00
parent 187e286f44
commit a391158b34
4 changed files with 86 additions and 13 deletions

View File

@@ -58,14 +58,14 @@ else()
message(STATUS "Arithmetic decoding support disabled")
endif()
if(NOT DEFINED WITH_JNI)
set(WITH_JNI 0)
if(NOT DEFINED WITH_JAVA)
set(WITH_JAVA 0)
endif()
if(WITH_JNI)
message(STATUS "TurboJPEG/OSS JNI wrapper enabled")
if(WITH_JAVA)
message(STATUS "TurboJPEG/OSS Java wrapper enabled")
else()
message(STATUS "TurboJPEG/OSS JNI wrapper disabled")
message(STATUS "TurboJPEG/OSS Java wrapper disabled")
endif()
set(JPEG_LIB_VERSION 62)
@@ -115,12 +115,9 @@ configure_file(win/config.h.in config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
if(WITH_JNI)
include(CheckIncludeFiles)
check_include_files(jni.h HAVE_JNI_H)
if(NOT HAVE_JNI_H)
message(FATAL_ERROR "Cannot find jni.h. Be sure to add the Java include directories to the INCLUDE environment variable (MSVC) or the CPATH environment variable (GCC).")
endif()
if(WITH_JAVA)
find_package(Java)
find_package(JNI)
endif()
@@ -163,6 +160,10 @@ else()
message(STATUS "Not using SIMD acceleration")
endif()
if(WITH_JAVA)
add_subdirectory(java)
endif()
add_subdirectory(sharedlib)
add_library(jpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
@@ -174,8 +175,9 @@ if(WITH_SIMD)
endif()
set(TURBOJPEG_SOURCES turbojpegl.c transupp.c)
if(WITH_JNI)
if(WITH_JAVA)
set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
endif()
add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
@@ -231,7 +233,19 @@ add_executable(wrjpgcom rdjpgcom.c)
# Tests
#
if(MSVC_IDE)
set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/")
else()
set(OBJDIR "")
endif()
enable_testing()
if(WITH_JAVA)
add_test(TJUnitTest ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest)
add_test(TJUnitTest-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -yuv)
add_test(TJUnitTest-bi ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi)
add_test(TJUnitTest-bi-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi -yuv)
endif()
add_test(jpegut jpegut)
add_test(jpegut-yuv jpegut -yuv)
add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
@@ -349,6 +363,10 @@ if(64BIT)
set(INST_DEFS ${INST_DEFS} -DWIN64)
endif()
if(WITH_JAVA)
set(INST_DEFS ${INST_DEFS} -DJAVA)
endif()
if(MSVC_IDE)
set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=$(OutDir)\\")
else()

45
java/CMakeLists.txt Normal file
View File

@@ -0,0 +1,45 @@
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/TJDecompressor
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(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()
if(MSVC_IDE)
set(JAVA_CLASSES ${JAVA_CLASSES}
org/libjpegturbo/turbojpeg/TJ$ScalingFactor.class)
else()
set(JAVA_CLASSES ${JAVA_CLASSES}
org/libjpegturbo/turbojpeg/TJ$$ScalingFactor.class)
endif()
add_custom_command(OUTPUT ${JAVA_CLASSES_FULL} DEPENDS ${JAVA_SOURCES}
COMMAND ${JAVA_COMPILE} -d ${OBJDIR} ARGS ${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)

View File

@@ -44,4 +44,4 @@ uninstall-local:
endif
EXTRA_DIST = MANIFEST.MF ${JAVASOURCES} ${JNIHEADERS} doc
EXTRA_DIST = MANIFEST.MF ${JAVASOURCES} ${JNIHEADERS} doc CMakeLists.txt

View File

@@ -62,6 +62,10 @@ Section "@CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@ (required)"
File "@CMAKE_BINARY_DIR@\${BUILDDIR}turbojpeg-static.lib"
File "@CMAKE_BINARY_DIR@\sharedlib\${BUILDDIR}jpeg.lib"
File "@CMAKE_BINARY_DIR@\${BUILDDIR}jpeg-static.lib"
!endif
!ifdef JAVA
SetOutPath $INSTDIR\classes
File "@CMAKE_BINARY_DIR@\java\${BUILDDIR}turbojpeg.jar"
!endif
SetOutPath $INSTDIR\include
File "@CMAKE_BINARY_DIR@\jconfig.h"
@@ -112,6 +116,9 @@ Section "Uninstall"
Delete $INSTDIR\lib\jpeg-static.lib
Delete $INSTDIR\lib\turbojpeg.lib
Delete $INSTDIR\lib\turbojpeg-static.lib
!endif
!ifdef JAVA
Delete $INSTDIR\classes\turbojpeg.jar
!endif
Delete $INSTDIR\bin\cjpeg.exe
Delete $INSTDIR\bin\djpeg.exe
@@ -135,6 +142,9 @@ Section "Uninstall"
RMDir "$INSTDIR\include"
RMDir "$INSTDIR\lib"
RMDir "$INSTDIR\doc"
!ifdef JAVA
RMDir "$INSTDIR\classes"
!endif
RMDir "$INSTDIR\bin"
RMDir "$INSTDIR"