diff --git a/CMake/External_libtiff.cmake b/CMake/External_libtiff.cmake index 29b1bb0e..392e4ed3 100644 --- a/CMake/External_libtiff.cmake +++ b/CMake/External_libtiff.cmake @@ -54,6 +54,10 @@ list(APPEND libtiff_args -DZLIB_LIBRARY_RELEASE=${ZLIB_LIBRARY_DEBUG} ) +option(libtiff_ENABLE_OPENGL "" ON) +mark_as_advanced(libtiff_ENABLE_OPENGL) +list(APPEND libtiff_args "-DENABLE_OPENGL:BOOL=${libtiff_ENABLE_OPENGL}") + ExternalProject_Add(libtiff DEPENDS ${libtiff_DEPENDS} URL ${libtiff_url} diff --git a/Patches/libtiff/CMakeLists.txt b/Patches/libtiff/CMakeLists.txt index 777e162d..3f3b474e 100644 --- a/Patches/libtiff/CMakeLists.txt +++ b/Patches/libtiff/CMakeLists.txt @@ -23,7 +23,7 @@ # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THIS SOFTWARE. -cmake_minimum_required(VERSION 2.8.9) +cmake_minimum_required(VERSION 2.8.11) # b/c of use of BUILD_INTERFACE generator expression # Default policy is from 2.8.9 cmake_policy(VERSION 2.8.9) @@ -92,8 +92,9 @@ include(GNUInstallDirs) include(CheckCCompilerFlag) include(CheckCSourceCompiles) include(CheckIncludeFile) +include(CheckLibraryExists) include(CheckTypeSize) -include(CheckFunctionExists) +include(CheckSymbolExists) enable_testing() macro(current_date var) @@ -184,7 +185,7 @@ if(MSVC) set(CMAKE_DEBUG_POSTFIX "d") endif() -option(ld-version-script "Enable linker version script" OFF) +option(ld-version-script "Enable linker version script" ON) # Check if LD supports linker scripts. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map" "VERS_1 { global: sym; @@ -213,9 +214,6 @@ check_include_file(dlfcn.h HAVE_DLFCN_H) check_include_file(fcntl.h HAVE_FCNTL_H) check_include_file(inttypes.h HAVE_INTTYPES_H) check_include_file(io.h HAVE_IO_H) -check_include_file(limits.h HAVE_LIMITS_H) -check_include_file(malloc.h HAVE_MALLOC_H) -check_include_file(memory.h HAVE_MEMORY_H) check_include_file(search.h HAVE_SEARCH_H) check_include_file(stdint.h HAVE_STDINT_H) check_include_file(string.h HAVE_STRING_H) @@ -271,8 +269,6 @@ int main(void){ # Check type sizes # NOTE: Could be replaced with C99 -check_type_size("signed short" SIZEOF_SIGNED_SHORT) -check_type_size("unsigned short" SIZEOF_UNSIGNED_SHORT) check_type_size("signed int" SIZEOF_SIGNED_INT) check_type_size("unsigned int" SIZEOF_UNSIGNED_INT) check_type_size("signed long" SIZEOF_SIGNED_LONG) @@ -342,29 +338,21 @@ endif() if(SIZEOF_UNSIGNED_INT EQUAL SIZEOF_SIZE_T) set(TIFF_SIZE_T "unsigned int") set(TIFF_SIZE_FORMAT "%u") + set(TIFF_SSIZE_T "signed int") + set(TIFF_SSIZE_FORMAT "%d") elseif(SIZEOF_UNSIGNED_LONG EQUAL SIZEOF_SIZE_T) set(TIFF_SIZE_T "unsigned long") set(TIFF_SIZE_FORMAT "%lu") -elseif(SIZEOF_UNSIGNED_LONG_LONG EQUAL SIZEOF_SIZE_T) - set(TIFF_SIZE_T "unsigned long") - if (MINGW) - set(TIFF_SIZE_FORMAT "%I64u") - else() - set(TIFF_SIZE_FORMAT "%llu") - endif() -endif() - -if(SIZEOF_SIGNED_INT EQUAL SIZEOF_UNSIGNED_CHAR_P) - set(TIFF_SSIZE_T "signed int") - set(TIFF_SSIZE_FORMAT "%d") -elseif(SIZEOF_SIGNED_LONG EQUAL SIZEOF_UNSIGNED_CHAR_P) set(TIFF_SSIZE_T "signed long") set(TIFF_SSIZE_FORMAT "%ld") -elseif(SIZEOF_SIGNED_LONG_LONG EQUAL SIZEOF_UNSIGNED_CHAR_P) +elseif(SIZEOF_UNSIGNED_LONG_LONG EQUAL SIZEOF_SIZE_T) + set(TIFF_SIZE_T "unsigned long long") set(TIFF_SSIZE_T "signed long long") if (MINGW) + set(TIFF_SIZE_FORMAT "%I64u") set(TIFF_SSIZE_FORMAT "%I64d") else() + set(TIFF_SIZE_FORMAT "%llu") set(TIFF_SSIZE_FORMAT "%lld") endif() endif() @@ -388,88 +376,43 @@ endif() # TIFF_SSIZE_T TIFF_SSIZE_FORMAT # TIFF_PTRDIFF_T TIFF_PTRDIFF_FORMAT) -# Nonstandard int types -check_type_size(INT8 int8) -set(HAVE_INT8 ${INT8}) -check_type_size(INT16 int16) -set(HAVE_INT16 ${INT16}) -check_type_size(INT32 int32) -set(HAVE_INT32 ${INT32}) - -# Check functions -set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) -set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${M_LIBRARY}) -check_function_exists(floor HAVE_FLOOR) -check_function_exists(pow HAVE_POW) -check_function_exists(sqrt HAVE_SQRT) -set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_SAVE}) - -check_function_exists(isascii HAVE_ISASCII) -check_function_exists(memmove HAVE_MEMMOVE) -check_function_exists(memset HAVE_MEMSET) -check_function_exists(mmap HAVE_MMAP) -check_function_exists(setmode HAVE_SETMODE) -check_function_exists(strcasecmp HAVE_STRCASECMP) -check_function_exists(strchr HAVE_STRCHR) -check_function_exists(strrchr HAVE_STRRCHR) -check_function_exists(strstr HAVE_STRSTR) -check_function_exists(strtol HAVE_STRTOL) -check_function_exists(strtol HAVE_STRTOUL) -check_function_exists(strtoull HAVE_STRTOULL) -check_function_exists(getopt HAVE_GETOPT) -check_function_exists(lfind HAVE_LFIND) - -# May be inlined, so check it compiles: -check_c_source_compiles(" -#include -int main(void) { - char buf[10]; - snprintf(buf, 10, \"Test %d\", 1); - return 0; -}" - HAVE_SNPRINTF) +check_symbol_exists(mmap "sys/mman.h" HAVE_MMAP) +check_symbol_exists(setmode "unistd.h" HAVE_SETMODE) +check_symbol_exists(snprintf "stdio.h" HAVE_SNPRINTF) +check_symbol_exists(strcasecmp "strings.h" HAVE_STRCASECMP) +check_symbol_exists(strtol "stdlib.h" HAVE_STRTOL) +check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL) +check_symbol_exists(strtoul "stdlib.h" HAVE_STRTOUL) +check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL) +check_symbol_exists(getopt "unistd.h;stdio.h" HAVE_GETOPT) +check_symbol_exists(lfind "search.h" HAVE_LFIND) if(NOT HAVE_SNPRINTF) add_definitions(-DNEED_LIBPORT) -else() - add_definitions(-DHAVE_SNPRINTF) endif() # CPU bit order -set(fillorder FILLORDER_MSB2LSB) +set(HOST_FILLORDER FILLORDER_MSB2LSB) if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i.*86.*" OR CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "amd64.*" OR + # AMD64 on Windows + CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "AMD64" OR CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64.*") - set(fillorder FILLORDER_LSB2MSB) + set(HOST_FILLORDER FILLORDER_LSB2MSB) endif() -set(HOST_FILLORDER ${fillorder} CACHE STRING "Native CPU bit order") -mark_as_advanced(HOST_FILLORDER) # CPU endianness include(TestBigEndian) -test_big_endian(bigendian) -if (bigendian) - set(bigendian ON) -else() - set(bigendian OFF) -endif() -set(HOST_BIG_ENDIAN ${bigendian} CACHE STRING "Native CPU bit order") -mark_as_advanced(HOST_BIG_ENDIAN) -if (HOST_BIG_ENDIAN) - set(HOST_BIG_ENDIAN 1) -else() - set(HOST_BIG_ENDIAN 0) -endif() +test_big_endian(HOST_BIG_ENDIAN) # IEEE floating point -set(HAVE_IEEEFP 1 CACHE STRING "IEEE floating point is available") -mark_as_advanced(HAVE_IEEEFP) +set(HAVE_IEEEFP 1) report_values(CMAKE_HOST_SYSTEM_PROCESSOR HOST_FILLORDER HOST_BIG_ENDIAN HAVE_IEEEFP) # Large file support -if (UNIX) +if (UNIX OR MINGW) # This might not catch every possibility catered for by # AC_SYS_LARGEFILE. add_definitions(-D_FILE_OFFSET_BITS=64) @@ -562,12 +505,9 @@ else() set(JBIG_FOUND FALSE) endif() -set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) set(CMAKE_REQUIRED_INCLUDES_SAVE ${CMAKE_REQUIRED_INCLUDES}) set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${JBIG_INCLUDE_DIR}) -set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${JBIG_LIBRARY}) -check_function_exists(jbg_newlen HAVE_JBG_NEWLEN) -set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_SAVE}) +check_symbol_exists(jbg_newlen "jbig.h" HAVE_JBG_NEWLEN) set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_SAVE}) # liblzma2 @@ -580,6 +520,42 @@ if(LIBLZMA_FOUND) set(LZMA_SUPPORT 1) endif() +# libzstd +option(zstd "use libzstd (required for ZSTD compression)" ON) +if (zstd) + find_path(ZSTD_INCLUDE_DIR zstd.h) + find_library(ZSTD_LIBRARY NAMES zstd) + if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY) + check_library_exists ("${ZSTD_LIBRARY}" ZSTD_decompressStream "" ZSTD_RECENT_ENOUGH) + if (ZSTD_RECENT_ENOUGH) + set(ZSTD_FOUND TRUE) + set(ZSTD_LIBRARIES ${ZSTD_LIBRARY}) + message(STATUS "Found ZSTD library: ${ZSTD_LIBRARY}") + else () + message(WARNING "Found ZSTD library, but not recent enough. Use zstd >= 1.0") + endif () + endif () +endif() +set(ZSTD_SUPPORT 0) +if(ZSTD_FOUND) + set(ZSTD_SUPPORT 1) +endif() + +# libwebp +option(webp "use libwebp (required for WEBP compression)" ON) +if (webp) + find_path(WEBP_INCLUDE_DIR /webp/decode.h) + find_library(WEBP_LIBRARY NAMES webp) +endif() +set(WEBP_SUPPORT 0) +set(WEBP_FOUND FALSE) +if (WEBP_INCLUDE_DIR AND WEBP_LIBRARY) + set(WEBP_SUPPORT 1) + set(WEBP_FOUND TRUE) + set(WEBP_LIBRARIES ${WEBP_LIBRARY}) + message(STATUS "Found WEBP library: ${WEBP_LIBRARY}") +endif() + # 8/12-bit jpeg mode option(jpeg12 "enable libjpeg 8/12-bit dual mode (requires separate 12-bit libjpeg build)" ON) @@ -604,31 +580,30 @@ if (cxx) endif() # OpenGL and GLUT -find_package(OpenGL) -find_package(GLUT) -set(HAVE_OPENGL FALSE) -if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) - set(HAVE_OPENGL TRUE) -endif() -# Purely to satisfy the generated headers: -check_include_file(GL/gl.h HAVE_GL_GL_H) -check_include_file(GL/glu.h HAVE_GL_GLU_H) -check_include_file(GL/glut.h HAVE_GL_GLUT_H) -check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) -check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) -check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) +option(ENABLE_OPENGL ON) +if (ENABLE_OPENGL) + find_package(OpenGL) + find_package(GLUT) + set(HAVE_OPENGL FALSE) + if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) + set(HAVE_OPENGL TRUE) + endif() + # Purely to satisfy the generated headers: + check_include_file(GL/gl.h HAVE_GL_GL_H) + check_include_file(GL/glu.h HAVE_GL_GLU_H) + check_include_file(GL/glut.h HAVE_GL_GLUT_H) + check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) + check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) + check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) +endif() # Win32 IO set(win32_io FALSE) if(WIN32) set(win32_io TRUE) endif() -set(USE_WIN32_FILEIO ${win32_io} CACHE BOOL "Use win32 IO system (Microsoft Windows only)") -if (USE_WIN32_FILEIO) - set(USE_WIN32_FILEIO TRUE) -else() - set(USE_WIN32_FILEIO FALSE) -endif() + +set(USE_WIN32_FILEIO ${win32_io}) # Orthogonal features @@ -645,7 +620,7 @@ if(strip-chopping) endif() # Defer loading of strip/tile offsets -option(defer-strile-load "enable deferred strip/tile offset/size loading (experimental)" OFF) +option(defer-strile-load "enable deferred strip/tile offset/size loading (also available at runtime with the 'D' flag of TIFFOpen())" OFF) set(DEFER_STRILE_LOAD ${defer-strile-load}) # CHUNKY_STRIP_READ_SUPPORT @@ -694,6 +669,12 @@ endif() if(LIBLZMA_INCLUDE_DIRS) list(APPEND TIFF_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) endif() +if(ZSTD_INCLUDE_DIR) + list(APPEND TIFF_INCLUDES ${ZSTD_INCLUDE_DIR}) +endif() +if(WEBP_INCLUDE_DIR) + list(APPEND TIFF_INCLUDES ${WEBP_INCLUDE_DIR}) +endif() # Libraries required by libtiff set(TIFF_LIBRARY_DEPS) @@ -715,6 +696,12 @@ endif() if(LIBLZMA_LIBRARIES) list(APPEND TIFF_LIBRARY_DEPS ${LIBLZMA_LIBRARIES}) endif() +if(ZSTD_LIBRARIES) + list(APPEND TIFF_LIBRARY_DEPS ${ZSTD_LIBRARIES}) +endif() +if(WEBP_LIBRARIES) + list(APPEND TIFF_LIBRARY_DEPS ${WEBP_LIBRARIES}) +endif() #report_values(TIFF_INCLUDES TIFF_LIBRARY_DEPS) @@ -758,6 +745,8 @@ message(STATUS " Old JPEG support: ${old-jpeg} (requested) ${ message(STATUS " JPEG 8/12 bit dual mode: ${jpeg12} (requested) ${JPEG12_FOUND} (availability)") message(STATUS " ISO JBIG support: ${jbig} (requested) ${JBIG_FOUND} (availability)") message(STATUS " LZMA2 support: ${lzma} (requested) ${LIBLZMA_FOUND} (availability)") +message(STATUS " ZSTD support: ${zstd} (requested) ${ZSTD_FOUND} (availability)") +message(STATUS " WEBP support: ${webp} (requested) ${WEBP_FOUND} (availability)") message(STATUS "") message(STATUS " C++ support: ${cxx} (requested) ${CXX_SUPPORT} (availability)") message(STATUS "") diff --git a/Patches/libtiff/Patch.cmake b/Patches/libtiff/Patch.cmake index 7e60ce3a..9eb81b68 100644 --- a/Patches/libtiff/Patch.cmake +++ b/Patches/libtiff/Patch.cmake @@ -5,12 +5,7 @@ message("Patching libtiff in ${libtiff_source}") -# file(COPY -# ${libtiff_patch}/CMakeLists.txt -# DESTINATION ${libtiff_source} -# ) - -# file(COPY -# ${libtiff_patch}/libtiff/CMakeLists.txt -# DESTINATION ${libtiff_source}/libtiff -# ) +file(COPY + ${libtiff_patch}/CMakeLists.txt + DESTINATION ${libtiff_source} + ) diff --git a/Patches/libtiff/libtiff/CMakeLists.txt b/Patches/libtiff/libtiff/CMakeLists.txt deleted file mode 100644 index 925a22c1..00000000 --- a/Patches/libtiff/libtiff/CMakeLists.txt +++ /dev/null @@ -1,166 +0,0 @@ -# CMake build for libtiff -# -# Copyright © 2015 Open Microscopy Environment / University of Dundee -# Written by Roger Leigh -# -# Permission to use, copy, modify, distribute, and sell this software and -# its documentation for any purpose is hereby granted without fee, provided -# that (i) the above copyright notices and this permission notice appear in -# all copies of the software and related documentation, and (ii) the names of -# Sam Leffler and Silicon Graphics may not be used in any advertising or -# publicity relating to the software without the specific, prior written -# permission of Sam Leffler and Silicon Graphics. -# -# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, -# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY -# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. -# -# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR -# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, -# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF -# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -# OF THIS SOFTWARE. - -# Generate headers -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tif_config.h.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/tif_config.h - @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tiffconf.h.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/tiffconf.h - @ONLY) - -extra_dist( - SConstruct - tif_config.h-vms - tif_config.vc.h - tif_config.wince.h - tiffconf.vc.h - tiffconf.wince.h - libtiff.def - libtiff.map - libtiffxx.map) - -set(tiff_HEADERS - tiff.h - tiffio.h - tiffvers.h) - -set(tiff_noinst_HEADERS - t4.h - tif_dir.h - tif_predict.h - tiffiop.h - uvcode.h) - -set(nodist_tiff_HEADERS - ${CMAKE_CURRENT_BINARY_DIR}/tiffconf.h) - -set(tiff_SOURCES - tif_aux.c - tif_close.c - tif_codec.c - tif_color.c - tif_compress.c - tif_dir.c - tif_dirinfo.c - tif_dirread.c - tif_dirwrite.c - tif_dumpmode.c - tif_error.c - tif_extension.c - tif_fax3.c - tif_fax3sm.c - tif_flush.c - tif_getimage.c - tif_jbig.c - tif_jpeg.c - tif_jpeg_12.c - tif_luv.c - tif_lzma.c - tif_lzw.c - tif_next.c - tif_ojpeg.c - tif_open.c - tif_packbits.c - tif_pixarlog.c - tif_predict.c - tif_print.c - tif_read.c - tif_strip.c - tif_swab.c - tif_thunder.c - tif_tile.c - tif_version.c - tif_warning.c - tif_write.c - tif_zip.c) - -set(tiffxx_HEADERS - tiffio.hxx) - -set(tiffxx_SOURCES - tif_stream.cxx) - -if(WIN32_IO) - extra_dist(tif_unix.c) - list(APPEND tiff_SOURCES tif_win32.c) -else() - extra_dist(tif_win32.c) - list(APPEND tiff_SOURCES tif_unix.c) -endif() - -include_directories(${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ${TIFF_INCLUDES}) - -add_library(tiff ${tiff_SOURCES} ${tiff_HEADERS} ${nodist_tiff_HEADERS} - ${tiff_port_SOURCES} libtiff.def) -target_link_libraries(tiff ${TIFF_LIBRARY_DEPS}) -set_target_properties(tiff PROPERTIES SOVERSION ${SO_COMPATVERSION}) -set_target_properties(tiff PROPERTIES DEBUG_POSTFIX "") -if(NOT CYGWIN) - # This property causes shared libraries on Linux to have the full version - # encoded into their final filename. We disable this on Cygwin because - # it causes cygz-${TIFF_FULL_VERSION}.dll to be created when cygz.dll - # seems to be the default. - set_target_properties(tiff PROPERTIES VERSION ${SO_VERSION}) -endif() -if(HAVE_LD_VERSION_SCRIPT) - set_target_properties(tiff PROPERTIES LINK_FLAGS - "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libtiff.map") -endif() - -install(TARGETS tiff - RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) - -install(FILES ${tiff_HEADERS} ${nodist_tiff_HEADERS} - DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}") - -if(cxx) - add_library(tiffxx ${tiffxx_SOURCES} ${tiffxx_HEADERS}) - target_link_libraries(tiffxx tiff) - set_target_properties(tiffxx PROPERTIES SOVERSION ${SO_COMPATVERSION}) - if(NOT CYGWIN) - # This property causes shared libraries on Linux to have the full version - # encoded into their final filename. We disable this on Cygwin because - # it causes cygz-${TIFF_FULL_VERSION}.dll to be created when cygz.dll - # seems to be the default. - set_target_properties(tiffxx PROPERTIES VERSION ${SO_VERSION}) - endif() - if(HAVE_LD_VERSION_SCRIPT) - set_target_properties(tiffxx PROPERTIES LINK_FLAGS - "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libtiffxx.map") - endif() - - install(TARGETS tiffxx - RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) - - install(FILES ${tiffxx_HEADERS} - DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}") - -endif()