add info on how to build doxygen doc with autotools
[openjpeg.git] / codec / CMakeLists.txt
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 )
8
9 # If not getopt was found then add it to the lib:
10 IF(DONT_HAVE_GETOPT)
11   SET(common_SRCS
12     ${common_SRCS}
13     compat/getopt.c
14   )
15 ENDIF(DONT_HAVE_GETOPT)
16
17 # Do the proper thing when building static...if only there was configured
18 # headers or def files instead
19 IF(NOT BUILD_SHARED_LIBS)
20   ADD_DEFINITIONS(-DOPJ_STATIC)
21 ENDIF(NOT BUILD_SHARED_LIBS)
22
23 # Headers file are located here:
24 INCLUDE_DIRECTORIES(
25   ${OPENJPEG_SOURCE_DIR}/libopenjpeg
26   ${LCMS_INCLUDE_DIR}
27   )
28 IF(PNG_FOUND)
29   INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
30 ENDIF(PNG_FOUND)
31 IF(TIFF_FOUND)
32   INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
33 ENDIF(TIFF_FOUND)
34
35 # Loop over all executables:
36 FOREACH(exe j2k_to_image image_to_j2k j2k_dump)
37   ADD_EXECUTABLE(${exe} ${exe}.c ${common_SRCS})
38   TARGET_LINK_LIBRARIES(${exe} ${OPJ_PREFIX}openjpeg ${LCMS_LIB})
39   IF(PNG_FOUND)
40     TARGET_LINK_LIBRARIES(${exe} ${PNG_LIBRARIES})
41   ENDIF(PNG_FOUND)
42   IF(TIFF_FOUND)
43     TARGET_LINK_LIBRARIES(${exe} ${TIFF_LIBRARIES})
44   ENDIF(TIFF_FOUND)
45   ADD_TEST(${exe} ${EXECUTABLE_OUTPUT_PATH}/${exe})
46   # calling those exe without option will make them fail always:
47   SET_TESTS_PROPERTIES(${exe} PROPERTIES WILL_FAIL TRUE)
48   # On unix you need to link to the math library:
49   IF(UNIX)
50     TARGET_LINK_LIBRARIES(${exe} m)
51   ENDIF(UNIX)
52   # Install exe
53   INSTALL(TARGETS ${exe}
54     EXPORT OpenJPEGTargets
55     DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
56   )
57 ENDFOREACH(exe)
58
59 if(BUILD_TESTING)
60 # Do testing here, once we know the examples are being built:
61 FILE(GLOB_RECURSE OPENJPEG_DATA_IMAGES_GLOB
62   "${JPEG2000_CONFORMANCE_DATA_ROOT}/*.j2k"
63   "${JPEG2000_CONFORMANCE_DATA_ROOT}/*.j2c"
64   "${JPEG2000_CONFORMANCE_DATA_ROOT}/*.jp2"
65   )
66
67 foreach(filename ${OPENJPEG_DATA_IMAGES_GLOB})
68   get_filename_component(filename_temp ${filename} NAME)
69   get_filename_component(filename_ext ${filename} EXT)
70   execute_process(COMMAND ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename}
71     OUTPUT_VARIABLE dump_success
72     OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${filename_temp}.dump
73     ERROR_QUIET
74   )
75   if(dump_success)
76   file(READ ${CMAKE_CURRENT_BINARY_DIR}/${filename_temp}.dump numcomp_file)
77   string(REGEX REPLACE ".*numcomps=([0-9]+).*" "\\1"
78     numcomps "${numcomp_file}")
79   #message( "found:${output_variable} for ${filename_temp}" )
80   endif()
81   ADD_TEST(dump-${filename_temp} ${EXECUTABLE_OUTPUT_PATH}/j2k_dump -i ${filename})
82   foreach(codec_type ppm pgx bmp tif raw tga png)
83     ADD_TEST(j2i-${filename_temp}-${codec_type} ${EXECUTABLE_OUTPUT_PATH}/j2k_to_image -i ${filename} -o ${filename_temp}.${codec_type})
84     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})
85     #if(UNIX)
86     #  ADD_TEST(cmp-${filename_temp}-${codec_type} cmp ${filename} ${filename_temp}.${codec_type}${filename_ext})
87     #endif(UNIX)
88   endforeach(codec_type)
89 endforeach(filename)
90 endif(BUILD_TESTING)