Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1.   # Build the demo app, small examples
  2.  
  3. # First thing define the common source:
  4. SET(common_SRCS
  5.   convert.c
  6.   index.c
  7.   ${OPENJPEG_SOURCE_DIR}/common/color.c
  8. )
  9.  
  10. # If not getopt was found then add it to the lib:
  11. IF(DONT_HAVE_GETOPT)
  12.   SET(common_SRCS
  13.     ${common_SRCS}
  14.     ${OPENJPEG_SOURCE_DIR}/common/getopt.c
  15.   )
  16. ENDIF(DONT_HAVE_GETOPT)
  17.  
  18. # Headers file are located here:
  19. INCLUDE_DIRECTORIES(
  20.   ${OPENJPEG_SOURCE_DIR}/libopenjpeg
  21.   ${LCMS_INCLUDE_DIR}
  22.   ${OPENJPEG_SOURCE_DIR}/common
  23.   )
  24. IF(PNG_FOUND)
  25.   INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
  26. ENDIF(PNG_FOUND)
  27. IF(TIFF_FOUND)
  28.   INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
  29. ENDIF(TIFF_FOUND)
  30.  
  31. IF(WIN32)
  32.   IF(BUILD_SHARED_LIBS)
  33.     ADD_DEFINITIONS(-DOPJ_EXPORTS)
  34.   ELSE(BUILD_SHARED_LIBS)
  35.     ADD_DEFINITIONS(-DOPJ_STATIC)
  36.   ENDIF(BUILD_SHARED_LIBS)
  37. ENDIF(WIN32)
  38.  
  39. # Loop over all executables:
  40. FOREACH(exe j2k_to_image image_to_j2k j2k_dump)
  41.   ADD_EXECUTABLE(${exe} ${exe}.c ${common_SRCS})
  42.   TARGET_LINK_LIBRARIES(${exe} ${OPENJPEG_LIBRARY_NAME} ${LCMS_LIB})
  43.   IF(PNG_FOUND)
  44.     TARGET_LINK_LIBRARIES(${exe} ${PNG_LIBRARIES})
  45.   ENDIF(PNG_FOUND)
  46.   IF(TIFF_FOUND)
  47.     TARGET_LINK_LIBRARIES(${exe} ${TIFF_LIBRARIES})
  48.   ENDIF(TIFF_FOUND)
  49.   ADD_TEST(${exe} ${EXECUTABLE_OUTPUT_PATH}/${exe})
  50.   # calling those exe without option will make them fail always:
  51.   SET_TESTS_PROPERTIES(${exe} PROPERTIES WILL_FAIL TRUE)
  52.   # On unix you need to link to the math library:
  53.   IF(UNIX)
  54.     TARGET_LINK_LIBRARIES(${exe} m)
  55.   ENDIF(UNIX)
  56.   # Install exe
  57.   INSTALL(TARGETS ${exe}
  58.     EXPORT OpenJPEGTargets
  59.     DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
  60.   )
  61. ENDFOREACH(exe)
  62.  
  63. # Install man pages
  64. INSTALL(
  65.   FILES       ../doc/man/man1/image_to_j2k.1
  66.               ../doc/man/man1/j2k_dump.1
  67.               ../doc/man/man1/j2k_to_image.1
  68.   DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man1)
  69. #
  70.  
  71. if(BUILD_TESTING)
  72. # Do testing here, once we know the examples are being built:
  73. FILE(GLOB_RECURSE OPENJPEG_DATA_IMAGES_GLOB
  74.   "${JPEG2000_CONFORMANCE_DATA_ROOT}/*.j2k"
  75.   "${JPEG2000_CONFORMANCE_DATA_ROOT}/*.j2c"
  76.   "${JPEG2000_CONFORMANCE_DATA_ROOT}/*.jp2"
  77.   )
  78.  
  79. foreach(filename ${OPENJPEG_DATA_IMAGES_GLOB})
  80.   get_filename_component(filename_temp ${filename} NAME)
  81.   get_filename_component(filename_ext ${filename} EXT)
  82.   execute_process(COMMAND ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename}
  83.     OUTPUT_VARIABLE dump_success
  84.     OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${filename_temp}.dump
  85.     ERROR_QUIET
  86.   )
  87.   if(dump_success)
  88.   file(READ ${CMAKE_CURRENT_BINARY_DIR}/${filename_temp}.dump numcomp_file)
  89.   string(REGEX REPLACE ".*numcomps=([0-9]+).*" "\\1"
  90.     numcomps "${numcomp_file}")
  91.   #message( "found:${output_variable} for ${filename_temp}" )
  92.   endif()
  93.   ADD_TEST(dump-${filename_temp} ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename})
  94.   foreach(codec_type ppm pgx bmp tif raw tga png)
  95.     ADD_TEST(j2i-${filename_temp}-${codec_type} ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image -i ${filename} -o ${filename_temp}.${codec_type})
  96.     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})
  97.     #if(UNIX)
  98.     #  ADD_TEST(cmp-${filename_temp}-${codec_type} cmp ${filename} ${filename_temp}.${codec_type}${filename_ext})
  99.     #endif(UNIX)
  100.   endforeach(codec_type)
  101. endforeach(filename)
  102. endif(BUILD_TESTING)
  103.