139 lines
4.3 KiB
CMake
139 lines
4.3 KiB
CMake
# Build the demo app, small examples
|
|
|
|
# First thing define the common source:
|
|
SET(common_SRCS
|
|
convert.c
|
|
index.c
|
|
${OPENJPEG_SOURCE_DIR}/applications/common/color.c
|
|
)
|
|
|
|
# If not getopt was found then add it to the lib:
|
|
IF(DONT_HAVE_GETOPT)
|
|
SET(common_SRCS
|
|
${common_SRCS}
|
|
${OPENJPEG_SOURCE_DIR}/applications/common/getopt.c
|
|
)
|
|
ENDIF(DONT_HAVE_GETOPT)
|
|
|
|
# Headers file are located here:
|
|
INCLUDE_DIRECTORIES(
|
|
${OPENJPEG_SOURCE_DIR}/libopenjpeg
|
|
${LCMS_INCLUDE_DIRNAME}
|
|
${OPENJPEG_SOURCE_DIR}/applications/common
|
|
${Z_INCLUDE_DIRNAME}
|
|
${PNG_INCLUDE_DIRNAME}
|
|
${TIFF_INCLUDE_DIRNAME}
|
|
)
|
|
|
|
IF(WIN32)
|
|
IF(BUILD_SHARED_LIBS)
|
|
ADD_DEFINITIONS(-DOPJ_EXPORTS)
|
|
ELSE(BUILD_SHARED_LIBS)
|
|
ADD_DEFINITIONS(-DOPJ_STATIC)
|
|
ENDIF(BUILD_SHARED_LIBS)
|
|
ENDIF(WIN32)
|
|
|
|
# Loop over all executables:
|
|
FOREACH(exe j2k_to_image image_to_j2k j2k_dump)
|
|
ADD_EXECUTABLE(${exe} ${exe}.c ${common_SRCS})
|
|
TARGET_LINK_LIBRARIES(${exe} ${OPENJPEG_LIBRARY_NAME}
|
|
${Z_LIBNAME} ${PNG_LIBNAME} ${TIFF_LIBNAME} ${LCMS_LIBNAME} )
|
|
|
|
ADD_TEST(${exe} ${EXECUTABLE_OUTPUT_PATH}/${exe})
|
|
# calling those exe without option will make them fail always:
|
|
SET_TESTS_PROPERTIES(${exe} PROPERTIES WILL_FAIL TRUE)
|
|
# On unix you need to link to the math library:
|
|
IF(UNIX)
|
|
TARGET_LINK_LIBRARIES(${exe} m)
|
|
ENDIF(UNIX)
|
|
# Install exe
|
|
INSTALL(TARGETS ${exe}
|
|
EXPORT OpenJPEGTargets
|
|
DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
|
|
)
|
|
ENDFOREACH(exe)
|
|
|
|
# Install man pages
|
|
INSTALL(
|
|
FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man1/image_to_j2k.1
|
|
${OPENJPEG_SOURCE_DIR}/doc/man/man1/j2k_dump.1
|
|
${OPENJPEG_SOURCE_DIR}/doc/man/man1/j2k_to_image.1
|
|
DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man1)
|
|
#
|
|
|
|
IF(BUILD_JPWL)
|
|
ADD_EXECUTABLE(JPWL_j2k_to_image
|
|
j2k_to_image.c
|
|
${common_SRCS}
|
|
)
|
|
|
|
SET_PROPERTY(
|
|
TARGET JPWL_j2k_to_image
|
|
APPEND PROPERTY COMPILE_DEFINITIONS USE_JPWL
|
|
)
|
|
|
|
TARGET_LINK_LIBRARIES(JPWL_j2k_to_image ${OPENJPEG_LIBRARY_NAME}_JPWL
|
|
${LCMS_LIBNAME} ${Z_LIBNAME} ${PNG_LIBNAME} ${TIFF_LIBNAME})
|
|
|
|
IF(UNIX)
|
|
TARGET_LINK_LIBRARIES(JPWL_j2k_to_image m)
|
|
ENDIF(UNIX)
|
|
|
|
ADD_EXECUTABLE(JPWL_image_to_j2k
|
|
image_to_j2k.c
|
|
${common_SRCS}
|
|
)
|
|
|
|
SET_PROPERTY(
|
|
TARGET JPWL_image_to_j2k
|
|
APPEND PROPERTY COMPILE_DEFINITIONS USE_JPWL
|
|
)
|
|
|
|
TARGET_LINK_LIBRARIES(JPWL_image_to_j2k ${OPENJPEG_LIBRARY_NAME}_JPWL
|
|
${LCMS_LIBNAME} ${Z_LIBNAME} ${PNG_LIBNAME} ${TIFF_LIBNAME})
|
|
|
|
IF(UNIX)
|
|
TARGET_LINK_LIBRARIES(JPWL_image_to_j2k m)
|
|
ENDIF(UNIX)
|
|
|
|
INSTALL(TARGETS JPWL_image_to_j2k JPWL_j2k_to_image
|
|
DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
|
|
)
|
|
ENDIF(BUILD_JPWL)
|
|
|
|
if(BUILD_TESTING)
|
|
# Do testing here, once we know the examples are being built:
|
|
FILE(GLOB_RECURSE OPENJPEG_DATA_IMAGES_GLOB
|
|
"${JPEG2000_CONFORMANCE_DATA_ROOT}/*.j2k"
|
|
"${JPEG2000_CONFORMANCE_DATA_ROOT}/*.j2c"
|
|
"${JPEG2000_CONFORMANCE_DATA_ROOT}/*.jp2"
|
|
)
|
|
|
|
foreach(filename ${OPENJPEG_DATA_IMAGES_GLOB})
|
|
get_filename_component(filename_temp ${filename} NAME)
|
|
get_filename_component(filename_ext ${filename} EXT)
|
|
execute_process(COMMAND ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename}
|
|
OUTPUT_VARIABLE dump_success
|
|
OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${filename_temp}.dump
|
|
ERROR_QUIET
|
|
)
|
|
if(dump_success)
|
|
file(READ ${CMAKE_CURRENT_BINARY_DIR}/${filename_temp}.dump numcomp_file)
|
|
string(REGEX REPLACE ".*numcomps=([0-9]+).*" "\\1"
|
|
numcomps "${numcomp_file}")
|
|
#message( "found:${output_variable} for ${filename_temp}" )
|
|
endif()
|
|
ADD_TEST(dump-${filename_temp} ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename})
|
|
foreach(codec_type ppm pgx bmp tif raw tga png)
|
|
ADD_TEST(j2i-${filename_temp}-${codec_type} ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image -i ${filename} -o ${filename_temp}.${codec_type})
|
|
endforeach(codec_type)
|
|
foreach(codec_type ppm bmp tif tga png)
|
|
ADD_TEST(i2j-${filename_temp}-${codec_type} ${EXECUTABLE_OUTPUT_PATH}/image_to_j2k -i ${filename_temp}.${codec_type} -o ${filename_temp}.${codec_type}${filename_ext})
|
|
SET_TESTS_PROPERTIES(i2j-${filename_temp}-${codec_type} PROPERTIES DEPENDS j2i-${filename_temp}-${codec_type})
|
|
#if(UNIX)
|
|
# ADD_TEST(cmp-${filename_temp}-${codec_type} cmp ${filename} ${filename_temp}.${codec_type}${filename_ext})
|
|
#endif(UNIX)
|
|
endforeach(codec_type)
|
|
endforeach(filename)
|
|
endif(BUILD_TESTING)
|