1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 # This convenient copy of libtiff does not support encapsulated zlib or jpeg
4 # stream. see ZIP_SUPPORT and JPEG_SUPPORT values
6 INCLUDE_DIRECTORIES(BEFORE "${CMAKE_CURRENT_SOURCE_DIR}")
7 INCLUDE_DIRECTORIES(BEFORE "${CMAKE_CURRENT_BINARY_DIR}")
57 SET(TARGET_FILES ${TARGET_FILES} tif_unix.c)
59 # This might not catch every possibility catered for by
61 add_definitions(-D_FILE_OFFSET_BITS=64)
62 set(_FILE_OFFSET_BITS 64)
64 SET(TARGET_FILES ${TARGET_FILES} tif_win32.c)
67 include(${CMAKE_ROOT}/Modules/TestBigEndian.cmake)
68 TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
69 set(HOST_BIGENDIAN ${WORDS_BIGENDIAN})
71 set(HOST_FILLORDER "FILLORDER_MSB2LSB")
73 set(HOST_FILLORDER "FILLORDER_LSB2MSB")
75 include(CheckIncludeFiles)
76 include(CheckSymbolExists)
77 include(CheckFunctionExists)
78 include(CheckCSourceCompiles)
80 CHECK_INCLUDE_FILES("zlib.h" HAVE_ZLIB_H)
81 CHECK_INCLUDE_FILES("jpeglib.h" HAVE_JPEGLIB_H)
90 set(PIXARLOG_SUPPORT 1) # require zlib
92 CHECK_INCLUDE_FILES("assert.h" HAVE_ASSERT_H)
93 CHECK_INCLUDE_FILES("dlfcn.h" HAVE_DLFCN_H)
94 CHECK_INCLUDE_FILES("fcntl.h" HAVE_FCNTL_H)
95 CHECK_INCLUDE_FILES("inttypes.h" HAVE_INTTYPES_H)
96 CHECK_INCLUDE_FILES("io.h" HAVE_IO_H)
97 CHECK_INCLUDE_FILES("limits.h" HAVE_LIMITS_H)
98 CHECK_INCLUDE_FILES("malloc.h" HAVE_MALLOC_H)
99 CHECK_INCLUDE_FILES("memory.h" HAVE_MEMORY_H)
100 CHECK_INCLUDE_FILES("search.h" HAVE_SEARCH_H)
101 CHECK_INCLUDE_FILES("stdint.h" HAVE_STDINT_H)
102 CHECK_INCLUDE_FILES("stdlib.h" HAVE_STDLIB_H)
103 CHECK_INCLUDE_FILES("string.h" HAVE_STRING_H)
104 CHECK_INCLUDE_FILES("strings.h" HAVE_STRINGS_H)
105 CHECK_INCLUDE_FILES("sys/stat.h" HAVE_SYS_STAT_H)
106 CHECK_INCLUDE_FILES("sys/time.h" HAVE_SYS_TIME_H)
107 CHECK_INCLUDE_FILES("time.h" HAVE_TIME_H)
108 CHECK_INCLUDE_FILES("sys/types.h" HAVE_SYS_TYPES_H)
109 CHECK_INCLUDE_FILES("unistd.h" HAVE_UNISTD_H)
110 CHECK_INCLUDE_FILES("windows.h" HAVE_WINDOWS_H)
111 CHECK_INCLUDE_FILES("strings.h" HAVE_STRINGS_H)
112 CHECK_INCLUDE_FILES("ieeefp.h" HAVE_IEEEFP_H)
115 if( HAVE_TIME_H AND HAVE_SYS_TIME_H )
116 set(TIME_WITH_SYS_TIME 1)
118 set(LZMA_SUPPORT 0) # ?
119 set(MDI_SUPPORT 1) # ?
120 set(STDC_HEADERS 1) # why not ?
121 set(DEFAULT_EXTRASAMPLE_AS_ALPHA 1)
122 set(CHECK_JPEG_YCBCR_SUBSAMPLING 1)
124 set(DEFER_STRILE_LOAD 0)
125 set(HAVE_JBG_NEWLEN 0) # FIXME: jbigkit stuff
126 set(STRIPCHOP_DEFAULT "TIFF_STRIPCHOP")
127 set(STRIP_SIZE_DEFAULT 8192)
128 set(SUBIFD_SUPPORT 1)
129 set(THUNDER_SUPPORT 1)
131 CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
132 CHECK_FUNCTION_EXISTS(isascii HAVE_ISASCII)
133 CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
134 CHECK_FUNCTION_EXISTS(memset HAVE_MEMSET)
135 CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
136 CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
137 CHECK_FUNCTION_EXISTS(strchr HAVE_STRCHR)
138 CHECK_FUNCTION_EXISTS(strrchr HAVE_STRRCHR)
139 CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR)
140 CHECK_FUNCTION_EXISTS(strtol HAVE_STRTOL)
141 CHECK_FUNCTION_EXISTS(strtoul HAVE_STRTOUL)
142 CHECK_FUNCTION_EXISTS(strtoull HAVE_STRTOULL)
144 # May be inlined, so check it compiles:
145 check_c_source_compiles("
149 snprintf(buf, 10, \"Test %d\", 1);
153 if(NOT HAVE_SNPRINTF)
154 SET(TARGET_FILES ${TARGET_FILES} snprintf.c)
157 include(CheckTypeSize)
159 CHECK_TYPE_SIZE("signed int" SIZEOF_SIGNED_INT)
160 CHECK_TYPE_SIZE("signed long" SIZEOF_SIGNED_LONG)
161 CHECK_TYPE_SIZE("signed long long" SIZEOF_SIGNED_LONG_LONG)
162 CHECK_TYPE_SIZE("signed short" SIZEOF_SIGNED_SHORT)
163 CHECK_TYPE_SIZE("unsigned int" SIZEOF_UNSIGNED_INT)
164 CHECK_TYPE_SIZE("unsigned long" SIZEOF_UNSIGNED_LONG)
165 CHECK_TYPE_SIZE("unsigned long long" SIZEOF_UNSIGNED_LONG_LONG)
166 CHECK_TYPE_SIZE("unsigned short" SIZEOF_UNSIGNED_SHORT)
167 CHECK_TYPE_SIZE("unsigned char*" SIZEOF_UNSIGNED_CHAR_P)
168 # check platform has ssize_t:
169 CHECK_TYPE_SIZE(ssize_t SSIZE_T)
172 set(TIFF_INT8_T int8_t)
173 set(TIFF_INT16_T int16_t)
174 set(TIFF_INT32_T int32_t)
175 set(TIFF_INT64_T int64_t)
176 set(TIFF_UINT8_T uint8_t)
177 set(TIFF_UINT16_T uint16_t)
178 set(TIFF_UINT32_T uint32_t)
179 set(TIFF_UINT64_T uint64_t)
180 set(TIFF_PTRDIFF_T ptrdiff_t)
182 if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
183 set(TIFF_SSIZE_T int64_t)
184 set(TIFF_SSIZE_FORMAT "%lld")
185 set(TIFF_SIZE_FORMAT "%llu")
186 elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
187 set(TIFF_SSIZE_T int32_t)
188 set(TIFF_SSIZE_FORMAT "%d")
189 set(TIFF_SIZE_FORMAT "%u")
191 message(FATAL_ERROR "unknown ssize_t")
194 set(TIFF_SSIZE_T ssize_t)
196 set(TIFF_INT32_FORMAT "%d")
197 set(TIFF_UINT32_FORMAT "%u")
198 set(TIFF_INT64_FORMAT "%lld")
199 set(TIFF_UINT64_FORMAT "%llu")
200 set(TIFF_PTRDIFF_FORMAT "%ld")
202 set(TIFF_INT8_T "signed __int8")
203 set(TIFF_INT16_T "signed __int16")
204 set(TIFF_INT32_T "signed __int32")
205 set(TIFF_INT64_T "signed __int64")
206 set(TIFF_UINT8_T "unsigned __int8")
207 set(TIFF_UINT16_T "unsigned __int16")
208 set(TIFF_UINT32_T "unsigned __int32")
209 set(TIFF_UINT64_T "unsigned __int64")
210 set(TIFF_PTRDIFF_T ptrdiff_t)
212 if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
213 set(TIFF_SSIZE_T "signed __int64")
214 set(TIFF_SSIZE_FORMAT "%lld")
215 set(TIFF_SIZE_FORMAT "%llu")
216 elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL 4)
217 set(TIFF_SSIZE_T "signed __int32")
218 set(TIFF_SSIZE_FORMAT "%d")
219 set(TIFF_SIZE_FORMAT "%u")
221 message(FATAL_ERROR "unknown ssize_t")
224 set(TIFF_SSIZE_T ssize_t)
226 set(TIFF_INT32_FORMAT "%d")
227 set(TIFF_UINT32_FORMAT "%u")
228 set(TIFF_INT64_FORMAT "%lld")
229 set(TIFF_UINT64_FORMAT "%llu")
230 set(TIFF_PTRDIFF_FORMAT "%ld")
234 set(VERSION "\"4.0.6\"")
235 set(PACKAGE_VERSION ${VERSION})
236 set(PACKAGE "\"tiff\"")
240 set(AC_APPLE_UNIVERSAL_BUILD 1)
243 set(CMAKE_REQUIRED_LIBRARIES m)
246 CHECK_SYMBOL_EXISTS(floor "math.h" HAVE_FLOOR)
247 CHECK_SYMBOL_EXISTS(sqrt "math.h" HAVE_SQRT)
248 CHECK_SYMBOL_EXISTS(pow "math.h" HAVE_POW)
249 CHECK_SYMBOL_EXISTS(lfind "search.h" HAVE_LFIND)
250 CHECK_SYMBOL_EXISTS(setmod "io.h" HAVE_SETMODE)
252 # http://www.cmake.org/pipermail/cmake/2007-September/016285.html
253 FOREACH(KEYWORD "inline" "__inline__" "__inline")
254 IF(NOT DEFINED C_INLINE)
255 TRY_COMPILE(C_HAS_${KEYWORD} "${CMAKE_CURRENT_BINARY_DIR}"
256 "${CMAKE_CURRENT_SOURCE_DIR}/test_inline.c"
257 COMPILE_DEFINITIONS "-Dinline=${KEYWORD}")
260 SET(INLINE_KEYWORD "${KEYWORD}")
261 ENDIF(C_HAS_${KEYWORD})
262 ENDIF(NOT DEFINED C_INLINE)
265 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tiffconf.h.cmake.in
266 ${CMAKE_CURRENT_BINARY_DIR}/tiffconf.h @ONLY)
267 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tif_config.h.cmake.in
268 ${CMAKE_CURRENT_BINARY_DIR}/tif_config.h @ONLY)
270 SET(LIBTARGET "tiff")
272 ADD_LIBRARY(${LIBTARGET} STATIC ${TARGET_FILES})
274 SET_TARGET_PROPERTIES(${LIBTARGET}
276 OUTPUT_NAME "${LIBTARGET}"
277 ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/thirdparty/lib