~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tests/openjpeg/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Main CMakeLists.txt to build the OpenJPEG project using CMake (www.cmake.org)
 
2
# Written by Mathieu Malaterre
 
3
 
 
4
# This CMake project will by default create a library called openjpeg
 
5
# But if you want to use this project within your own (CMake) project
 
6
# you will eventually like to prefix the library to avoid linking confusion
 
7
# For this purpose you can define a CMake var: OPENJPEG_NAMESPACE to whatever you like
 
8
# e.g.:
 
9
# SET(OPENJPEG_NAMESPACE "GDCMOPENJPEG")
 
10
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
11
 
 
12
IF(COMMAND CMAKE_POLICY)
 
13
  CMAKE_POLICY(SET CMP0003 NEW)
 
14
ENDIF(COMMAND CMAKE_POLICY)
 
15
 
 
16
IF(NOT OPENJPEG_NAMESPACE)
 
17
  SET(OPENJPEG_NAMESPACE "OPENJPEG")
 
18
  SET(OPENJPEG_STANDALONE 1)
 
19
ENDIF(NOT OPENJPEG_NAMESPACE)
 
20
# In all cases:
 
21
STRING(TOLOWER ${OPENJPEG_NAMESPACE} OPENJPEG_LIBRARY_NAME)
 
22
 
 
23
PROJECT(${OPENJPEG_NAMESPACE} C)
 
24
 
 
25
include(CMakeDetermineSystem)
 
26
 
 
27
# Do full dependency headers.
 
28
INCLUDE_REGULAR_EXPRESSION("^.*$")
 
29
 
 
30
#-----------------------------------------------------------------------------
 
31
# OPENJPEG version number, useful for packaging and doxygen doc:
 
32
SET(OPENJPEG_VERSION_MAJOR 1)
 
33
SET(OPENJPEG_VERSION_MINOR 4)
 
34
SET(OPENJPEG_VERSION_BUILD 0)
 
35
SET(OPENJPEG_VERSION
 
36
  "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}")
 
37
SET(PACKAGE_VERSION
 
38
  "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}")
 
39
# This setting of SOVERSION assumes that any API change
 
40
# will increment either the minor or major version number of openjpeg
 
41
SET(OPENJPEG_LIBRARY_PROPERTIES
 
42
  VERSION   "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}"
 
43
  SOVERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}"
 
44
)
 
45
# You will also need to define a value for the following variables:
 
46
# OPENJPEG_INSTALL_BIN_DIR          - binary dir (executables)
 
47
# OPENJPEG_INSTALL_LIB_DIR          - library dir (libs)
 
48
# OPENJPEG_INSTALL_DATA_DIR         - share dir (say, examples, data, etc)
 
49
# OPENJPEG_INSTALL_INCLUDE_DIR      - include dir (headers)
 
50
 
 
51
 
 
52
# On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security
 
53
# warnings
 
54
IF(WIN32)
 
55
  IF(NOT BORLAND)
 
56
    IF(NOT CYGWIN)
 
57
      IF(NOT MINGW)
 
58
        IF(NOT ITK_ENABLE_VISUAL_STUDIO_DEPRECATED_C_WARNINGS)
 
59
          ADD_DEFINITIONS(
 
60
            -D_CRT_FAR_MAPPINGS_NO_DEPRECATE
 
61
            -D_CRT_IS_WCTYPE_NO_DEPRECATE
 
62
            -D_CRT_MANAGED_FP_NO_DEPRECATE
 
63
            -D_CRT_NONSTDC_NO_DEPRECATE
 
64
            -D_CRT_SECURE_NO_DEPRECATE
 
65
            -D_CRT_SECURE_NO_DEPRECATE_GLOBALS
 
66
            -D_CRT_SETERRORMODE_BEEP_SLEEP_NO_DEPRECATE
 
67
            -D_CRT_TIME_FUNCTIONS_NO_DEPRECATE
 
68
            -D_CRT_VCCLRIT_NO_DEPRECATE
 
69
            -D_SCL_SECURE_NO_DEPRECATE
 
70
            )
 
71
        ENDIF(NOT ITK_ENABLE_VISUAL_STUDIO_DEPRECATED_C_WARNINGS)
 
72
      ENDIF(NOT MINGW)
 
73
    ENDIF(NOT CYGWIN)
 
74
  ENDIF(NOT BORLAND)
 
75
ENDIF(WIN32)
 
76
 
 
77
 
 
78
# --------------------------------------------------------------------------
 
79
# Install directories
 
80
 
 
81
STRING(TOLOWER ${PROJECT_NAME} projectname)
 
82
SET(subdir "${projectname}-${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}")
 
83
 
 
84
IF(NOT OPENJPEG_INSTALL_BIN_DIR)
 
85
  SET(OPENJPEG_INSTALL_BIN_DIR "bin")
 
86
ENDIF(NOT OPENJPEG_INSTALL_BIN_DIR)
 
87
 
 
88
IF(NOT OPENJPEG_INSTALL_LIB_DIR)
 
89
  SET(OPENJPEG_INSTALL_LIB_DIR "lib")
 
90
ENDIF(NOT OPENJPEG_INSTALL_LIB_DIR)
 
91
 
 
92
IF(NOT OPENJPEG_INSTALL_DATA_DIR)
 
93
  SET(OPENJPEG_INSTALL_DATA_DIR "share/${subdir}")
 
94
ENDIF(NOT OPENJPEG_INSTALL_DATA_DIR)
 
95
 
 
96
IF(NOT OPENJPEG_INSTALL_INCLUDE_DIR)
 
97
  SET(OPENJPEG_INSTALL_INCLUDE_DIR "include/")
 
98
ENDIF(NOT OPENJPEG_INSTALL_INCLUDE_DIR)
 
99
 
 
100
IF(NOT OPENJPEG_INSTALL_MAN_DIR)
 
101
  SET(OPENJPEG_INSTALL_MAN_DIR "share/man/")
 
102
ENDIF(NOT OPENJPEG_INSTALL_MAN_DIR)
 
103
 
 
104
IF(NOT OPENJPEG_INSTALL_DOC_DIR)
 
105
  SET(OPENJPEG_INSTALL_DOC_DIR "share/doc/${subdir}")
 
106
ENDIF(NOT OPENJPEG_INSTALL_DOC_DIR)
 
107
 
 
108
IF(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
 
109
  SET(OPENJPEG_INSTALL_PACKAGE_DIR ${OPENJPEG_INSTALL_LIB_DIR}/${subdir}
 
110
    CACHE INTERNAL "")
 
111
ENDIF(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
 
112
 
 
113
#-----------------------------------------------------------------------------
 
114
# Test for some required system information.
 
115
INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
 
116
 
 
117
#-----------------------------------------------------------------------------
 
118
# Test for getopt being available in this system
 
119
INCLUDE (${PROJECT_SOURCE_DIR}/CMake/CheckHaveGetopt.cmake )
 
120
 
 
121
#-----------------------------------------------------------------------------
 
122
# Setup file for setting custom ctest vars
 
123
CONFIGURE_FILE(
 
124
  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/CTestCustom.cmake.in
 
125
  ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake
 
126
  @ONLY
 
127
  )
 
128
 
 
129
#-----------------------------------------------------------------------------
 
130
# OpenJPEG build configuration options.
 
131
OPTION(BUILD_SHARED_LIBS "Build OpenJPEG shared library and link executables against it." ON)
 
132
 
 
133
#-----------------------------------------------------------------------------
 
134
SET (EXECUTABLE_OUTPUT_PATH ${OPENJPEG_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables.")
 
135
SET (LIBRARY_OUTPUT_PATH ${OPENJPEG_BINARY_DIR}/bin CACHE PATH "Single output directory for building all libraries.")
 
136
MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
 
137
 
 
138
 
 
139
# configure name mangling to allow multiple libraries to coexist
 
140
# peacefully
 
141
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
 
142
SET(MANGLE_PREFIX ${OPENJPEG_LIBRARY_NAME})
 
143
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in
 
144
               ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h
 
145
               @ONLY IMMEDIATE)
 
146
ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
 
147
 
 
148
#-----------------------------------------------------------------------------
 
149
# Always build the library
 
150
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
 
151
SUBDIRS(libopenjpeg)
 
152
 
 
153
#-----------------------------------------------------------------------------
 
154
# Build CODEC executables ?
 
155
OPTION(BUILD_CODEC "Build the CODEC executables" ON)
 
156
IF(BUILD_CODEC)
 
157
  SUBDIRS(codec)
 
158
ENDIF(BUILD_CODEC)
 
159
 
 
160
#-----------------------------------------------------------------------------
 
161
# Build MJ2 executables ?
 
162
OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF)
 
163
IF(BUILD_MJ2)
 
164
  SUBDIRS(mj2)
 
165
ENDIF(BUILD_MJ2)
 
166
 
 
167
#-----------------------------------------------------------------------------
 
168
# Build JPWL executables ?
 
169
OPTION(BUILD_JPWL "Build the JPWL executables" OFF)
 
170
IF(BUILD_JPWL)
 
171
  SUBDIRS(jpwl)
 
172
ENDIF(BUILD_JPWL)
 
173
 
 
174
#-----------------------------------------------------------------------------
 
175
# Build JP3D executables ?
 
176
OPTION(BUILD_JP3D "Build the JP3D executables" OFF)
 
177
IF(BUILD_JP3D)
 
178
  SUBDIRS(jp3d)
 
179
ENDIF(BUILD_JP3D)
 
180
 
 
181
#-----------------------------------------------------------------------------
 
182
# Build INDEXER_JPIP executables ?
 
183
OPTION(BUILD_INDEXER_JPIP "Build the INDEXER_JPIP executables" OFF)
 
184
IF(BUILD_INDEXER_JPIP AND NOT UNIX)
 
185
  SUBDIRS(indexer_JPIP)
 
186
ENDIF(BUILD_INDEXER_JPIP AND NOT UNIX)
 
187
 
 
188
#-----------------------------------------------------------------------------
 
189
# Build DOCUMENTATION ?
 
190
OPTION(BUILD_DOC "Build the doxygen documentation" OFF)
 
191
IF(BUILD_DOC)
 
192
  SUBDIRS(doc)
 
193
ENDIF(BUILD_DOC)
 
194
 
 
195
#-----------------------------------------------------------------------------
 
196
# For openjpeg team if they ever want CDash+CMake
 
197
OPTION(BUILD_TESTING "Build the tests." OFF)
 
198
IF(BUILD_TESTING)
 
199
  ENABLE_TESTING()
 
200
  INCLUDE(CTest)
 
201
ENDIF(BUILD_TESTING)
 
202
 
 
203
# Adding test with dataset from:
 
204
# http://www.crc.ricoh.com/~gormish/jpeg2000conformance/
 
205
# -> wget http://www.crc.ricoh.com/~gormish/jpeg2000conformance/j2kp4files_v1_5.zip
 
206
# http://www.jpeg.org/jpeg2000guide/testimages/testimages.html
 
207
#-----------------------------------------------------------------------------
 
208
# Adding JPEG2000_CONFORMANCE_DATA_ROOT
 
209
FIND_PATH(JPEG2000_CONFORMANCE_DATA_ROOT testimages.html
 
210
  ${OPENJPEG_SOURCE_DIR}/../jpeg2000testimages
 
211
  $ENV{JPEG2000_CONFORMANCE_DATA_ROOT}
 
212
)
 
213
 
 
214
#-----------------------------------------------------------------------------
 
215
# Compiler specific flags:
 
216
IF(CMAKE_COMPILER_IS_GNUCC)
 
217
  # For all builds, make sure openjpeg is std99 compliant:
 
218
  # SET(CMAKE_C_FLAGS "-Wall -std=c99 ${CMAKE_C_FLAGS}") # FIXME: this setting prevented us from setting a coverage build.
 
219
  # Do not use ffast-math for all build, it would produce incorrect results, only set for release:
 
220
  SET(CMAKE_C_FLAGS_RELEASE "-ffast-math ${CMAKE_C_FLAGS_RELEASE}")
 
221
ENDIF(CMAKE_COMPILER_IS_GNUCC)
 
222
 
 
223
# install all targets referenced as OPENJPEGTargets
 
224
install(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR})
 
225
CONFIGURE_FILE( ${OPENJPEG_SOURCE_DIR}/CMake/OpenJPEGConfig.cmake.in
 
226
  ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
 
227
  @ONLY
 
228
)
 
229
INSTALL( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
 
230
  DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}
 
231
)
 
232
# install CHANGES and LICENSE
 
233
INSTALL(
 
234
  FILES       CHANGES 
 
235
              LICENSE
 
236
  DESTINATION ${OPENJPEG_INSTALL_DOC_DIR})
 
237
#
 
238
IF(UNIX OR CYGWIN)
 
239
  SET(CMAKE_INCLUDE_PATH /usr/include /usr/local/include /opt/include 
 
240
        /opt/local/include /usr/include/libpng /usr/include/libpng14
 
241
        /usr/include/libpng12 /usr/local/include/libpng 
 
242
        /usr/local/include/libpng14 /usr/local/include/libpng12
 
243
        /opt/include/libpng /opt/include/libpng14 /opt/include/libpng12
 
244
        /opt/local/include/libpng /opt/local/include/libpng14
 
245
        /opt/local/include/libpng12 )
 
246
  SET(CMAKE_LIBRARY_PATH /usr/lib /usr/local/lib /opt/lib /opt/local/lib)
 
247
ELSEIF(WIN32)
 
248
  SET(CMAKE_INCLUDE_PATH ${OPENJPEG_SOURCE_DIR}/libs/libtiff 
 
249
        ${OPENJPEG_SOURCE_DIR}/libs/png ${OPENJPEG_SOURCE_DIR}/libs/lcms2
 
250
        C:/WINDOWS/system32/user )
 
251
  SET(CMAKE_LIBRARY_PATH ${OPENJPEG_SOURCE_DIR}/libs/libtiff
 
252
        ${OPENJPEG_SOURCE_DIR}/libs/png ${OPENJPEG_SOURCE_DIR}/libs/lcms2
 
253
        C:/WINDOWS/system32/user )
 
254
ENDIF()
 
255
#
 
256
FIND_FILE(HAVE_STRINGS_H_FOUND strings.h)
 
257
IF(NOT HAVE_STRINGS_H_FOUND STREQUAL "HAVE_STRINGS_H_FOUND-NOTFOUND")
 
258
  FIND_FILE(HAVE_STRINGS_H strings.h)
 
259
  SET(HAS_STRINGS_H 1)
 
260
ENDIF()
 
261
FIND_FILE(HAVE_INTTYPES_H_FOUND inttypes.h)
 
262
IF(NOT HAVE_INTTYPES_H_FOUND STREQUAL "HAVE_INTTYPES_H_FOUND-NOTFOUND")
 
263
  FIND_FILE(HAVE_INTTYPES_H inttypes.h)
 
264
  SET(HAS_INTTYPES_H 1)
 
265
ENDIF()
 
266
FIND_FILE(HAVE_MEMORY_H_FOUND memory.h)
 
267
IF(NOT HAVE_MEMORY_H_FOUND STREQUAL "HAVE_MEMORY_H_FOUND-NOTFOUND")
 
268
  FIND_FILE(HAVE_MEMORY_H memory.h)
 
269
  SET(HAS_MEMORY_H 1)
 
270
ENDIF()
 
271
FIND_FILE(HAVE_STDINT_H_FOUND stdint.h)
 
272
IF(NOT HAVE_STDINT_H_FOUND STREQUAL "HAVE_STDINT_H_FOUND-NOTFOUND")
 
273
  FIND_FILE(HAVE_STDINT_H stdint.h)
 
274
  SET(HAS_STDINT_H 1)
 
275
ENDIF()
 
276
FIND_FILE(HAVE_STDLIB_H_FOUND stdlib.h)
 
277
IF(NOT HAVE_STDLIB_H_FOUND STREQUAL "HAVE_STDLIB_H_FOUND-NOTFOUND")
 
278
  FIND_FILE(HAVE_STDLIB_H stdlib.h)
 
279
  SET(HAS_STDLIB_H 1)
 
280
ENDIF()
 
281
FIND_FILE(HAVE_STRING_H_FOUND string.h)
 
282
IF(NOT HAVE_STRING_H_FOUND STREQUAL "HAVE_STRING_H_FOUND-NOTFOUND")
 
283
  FIND_FILE(HAVE_STRING_H string.h)
 
284
  SET(HAS_STRING_H 1)
 
285
ENDIF()
 
286
FIND_FILE(HAVE_SYS_STAT_H_FOUND sys/stat.h)
 
287
IF(NOT HAVE_SYS_STAT_H_FOUND STREQUAL "HAVE_SYS_STAT_H_FOUND-NOTFOUND")
 
288
  FIND_FILE(HAVE_SYS_STAT_H sys/stat.h)
 
289
  SET(HAS_SYS_STAT_H 1)
 
290
ENDIF()
 
291
FIND_FILE(HAVE_SYS_TYPES_H_FOUND sys/types.h)
 
292
IF(NOT HAVE_SYS_TYPES_H_FOUND STREQUAL "HAVE_SYS_TYPES_H_FOUND-NOTFOUND")
 
293
  FIND_FILE(HAVE_SYS_TYPES_H sys/types.h)
 
294
  SET(HAS_SYS_TYPES_H 1)
 
295
ENDIF()
 
296
FIND_FILE(HAVE_UNISTD_H_FOUND unistd.h)
 
297
IF(NOT HAVE_UNISTD_H_FOUND STREQUAL "HAVE_UNISTD_H_FOUND-NOTFOUND")
 
298
  FIND_FILE(HAVE_UNISTD_H unistd.h)
 
299
  SET(HAS_UNISTD_H 1)
 
300
ENDIF()
 
301
#
 
302
# Does the system have png library installed ?
 
303
#
 
304
FIND_PACKAGE(PNG)
 
305
#
 
306
IF(PNG_FOUND)
 
307
  SET(HAVE_PNG_H 1)
 
308
  SET(HAVE_LIBPNG 1)
 
309
ENDIF()
 
310
#
 
311
# Does the system have tiff library installed ?
 
312
 
313
FIND_PACKAGE(TIFF)
 
314
#
 
315
IF(TIFF_FOUND)
 
316
  SET(HAVE_TIFF_H 1)
 
317
  SET(HAVE_LIBTIFF 1)
 
318
ENDIF()
 
319
#
 
320
#
 
321
# Does the system have lcms library installed ?
 
322
#
 
323
SET(LCMS_LIB "")
 
324
FIND_FILE(LCMS2_HEADER_FOUND lcms2.h)
 
325
#
 
326
IF(LCMS2_HEADER_FOUND STREQUAL "LCMS2_HEADER_FOUND-NOTFOUND")
 
327
 SET(LCMS2_HEADER_FOUND "")
 
328
ENDIF()
 
329
IF(LCMS2_HEADER_FOUND)
 
330
 FIND_PATH(LCMS_INCLUDE_DIR  lcms2.h)
 
331
 IF(UNIX OR CYGWIN)
 
332
   FIND_LIBRARY(HAVE_LIBLCMS2 lcms2)
 
333
 ELSE()
 
334
   FIND_LIBRARY(HAVE_LIBLCMS2 lcms2_static.lib)
 
335
 ENDIF() 
 
336
 IF(HAVE_LIBLCMS2 STREQUAL "HAVE_LIBLCMS2-NOTFOUND")
 
337
  SET(HAVE_LIBLCMS2 "")
 
338
 ENDIF()
 
339
 IF(HAVE_LIBLCMS2)
 
340
  SET(LCMS_LIB "${HAVE_LIBLCMS2}")
 
341
  SET(HAVE_LCMS2_LIB 1)
 
342
  SET(HAVE_LCMS2_H 1)
 
343
 ENDIF()
 
344
ENDIF()
 
345
IF(NOT LCMS2_HEADER_FOUND)
 
346
 FIND_FILE(LCMS1_HEADER_FOUND lcms.h)
 
347
 IF(LCMS1_HEADER_FOUND STREQUAL "LCMS1_HEADER_FOUND-NOTFOUND")
 
348
  SET(LCMS1_HEADER_FOUND "")
 
349
 ENDIF()
 
350
 IF(LCMS1_HEADER_FOUND)
 
351
  FIND_PATH(LCMS_INCLUDE_DIR  lcms.h)
 
352
  FIND_LIBRARY(HAVE_LIBLCMS1 lcms)
 
353
  IF(HAVE_LIBLCMS1 STREQUAL "HAVE_LIBLCMS1-NOTFOUND")
 
354
   SET(HAVE_LIBLCMS1 "")
 
355
  ENDIF()
 
356
  IF(HAVE_LIBLCMS1)
 
357
   SET(LCMS_LIB "${HAVE_LIBLCMS1}")
 
358
   SET(HAVE_LCMS1_LIB 1)
 
359
   SET(HAVE_LCMS1_H 1)
 
360
  ENDIF()
 
361
 ENDIF()
 
362
ENDIF()
 
363
#
 
364
# generate opj_config.h
 
365
CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_configh.cmake.in"
 
366
  "${OPENJPEG_BINARY_DIR}/opj_config.h"
 
367
  @ONLY 
 
368
)
 
369