summaryrefslogtreecommitdiff
path: root/applications/codec/CMakeLists.txt
blob: f56ee0b556cf5b92a1fed09ae458b4c8e2f4197a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# 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)