Skip to content

Commit

Permalink
Merge pull request #4961 from blowekamp/update_libtiff
Browse files Browse the repository at this point in the history
libtiff: update to 4.7.0
  • Loading branch information
hjmjohnson authored Nov 20, 2024
2 parents 7fe501d + 256bb57 commit 7e3492b
Show file tree
Hide file tree
Showing 99 changed files with 46,847 additions and 32,090 deletions.
41 changes: 35 additions & 6 deletions Modules/ThirdParty/TIFF/UpdateFromUpstream.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,56 @@ readonly name="tiff"
readonly ownership="Tiff Upstream <[email protected]>"
readonly subtree="Modules/ThirdParty/TIFF/src/itk$name"
readonly repo="https://gitlab.com/libtiff/libtiff.git"
readonly tag="v4.0.3"
readonly tag="v4.7.0"
readonly paths="
COPYRIGHT
README
CMakeLists.txt
README.md
LICENSE.md
cmake/AutotoolsCompat.cmake
cmake/CXXLibrary.cmake
cmake/CompilerChecks.cmake
cmake/DeflateCodec.cmake
cmake/FindCMath.cmake
cmake/IncludeChecks.cmake
cmake/InternalCodecs.cmake
cmake/JBIGCodec.cmake
cmake/JPEGCodec.cmake
cmake/LERCCodec.cmake
cmake/LZMACodec.cmake
cmake/LargeFileSupport.cmake
cmake/LibraryFeatures.cmake
cmake/LinkerChecks.cmake
cmake/OpenGLChecks.cmake
cmake/PixarLogCodec.cmake
cmake/ProcessorChecks.cmake
cmake/SymbolChecks.cmake
cmake/TypeSizeChecks.cmake
cmake/WebPCodec.cmake
cmake/WindowsSupport.cmake
cmake/ZSTDCodec.cmake
libtiff/CMakeLists.txt
libtiff/libtiff.def
libtiff/libtiff.map
libtiff/tif_config.h.in
libtiff/*.c
libtiff/*.h
libtiff/tif_config.h.cmake.in
libtiff/tiffconf.h.cmake.in
libtiff/tiffvers.h.cmake.in
port/CMakeLists.txt
port/dummy.c
port/getopt.c
port/libport.h
port/libport_config.h.cmake.in
"

extract_source () {
git_archive
pushd "${extractdir}/${name}-reduced"
echo "* -whitespace" >> .gitattributes
rm -vf libtiff/*.vc.h libtiff/*.wince.h libtiff/mkspans.c libtiff/tif_vms.c libtiff/tif_wince.c
rm -vf libtiff/*.vc.h libtiff/*.wince.h
chmod a-x libtiff/CMakeLists.txt port/CMakeLists.txt
popd
}

Expand Down
253 changes: 253 additions & 0 deletions Modules/ThirdParty/TIFF/src/itktiff/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1 +1,254 @@
# CMake build for libtiff
# Run "cmake" to generate the build files for your platform
#
# Copyright © 2015 Open Microscopy Environment / University of Dundee
# Copyright © 2021 Roger Leigh <[email protected]>
# Written by Roger Leigh <[email protected]>
#
# 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.

if(FALSE) # XXX(ITK): ITK handles CMake versions.
cmake_minimum_required(VERSION 3.9.0)

# Default policy is from 3.9.0
cmake_policy(VERSION 3.9.0)
endif()

# Find CMake modules in cmake/
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")

if(FALSE) # XXX(ITK): We hard-code the TIFF version that we imported.
# Read version information from configure.ac.
include(AutotoolsVersion)
message(STATUS "Building tiff version ${LIBTIFF_VERSION_FULL}")
else()
# Hard-code the version of TIFF used by ITK.
set(LIBTIFF_MAJOR_VERSION 4)
set(LIBTIFF_MINOR_VERSION 7)
set(LIBTIFF_MICRO_VERSION 0)
set(LIBTIFF_ALPHA_VERSION)
set(LIBTIFF_VERSION "${LIBTIFF_MAJOR_VERSION}.${LIBTIFF_MINOR_VERSION}.${LIBTIFF_MICRO_VERSION}")
set(LIBTIFF_VERSION_FULL "${LIBTIFF_VERSION}${LIBTIFF_ALPHA_VERSION}")
endif()

# Project definition
set(CMAKE_C_STANDARD 99)
project(tiff
VERSION "${LIBTIFF_VERSION}"
LANGUAGES C CXX)

if(FALSE) # XXX(ITK): Suppress options not relevant to ITK.
if(NOT CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# libtiff is being included as a subproject of some other project.
set(TIFF_INSTALL_DEFAULT OFF)
else()
set(TIFF_INSTALL_DEFAULT ON)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
endif()

option(tiff-tools "build TIFF tools" ON)
option(tiff-tests "build TIFF tests" ON)
option(tiff-contrib "build TIFF contrib" ON)
option(tiff-docs "build TIFF documentation" ON)
option(tiff-deprecated "build TIFF deprecated features" OFF)
option(tiff-install "install TIFF targets" ${TIFF_INSTALL_DEFAULT})
else()
set(tiff-deprecated ON)
set(tiff-install OFF)
endif()

# Disable deprecated features to ensure clean build
if (tiff-deprecated)
add_definitions(-DTIFF_DISABLE_DEPRECATED)
endif()

# Autotools compatibility
include(AutotoolsCompat)

# Compiler checks (warning flags, etc.)
include(CompilerChecks)

# Linker checks (version script, etc.)
include(LinkerChecks)

# Processor checks (endianness, fill order, floating point, etc.)
include(ProcessorChecks)

# Checks for headers
include(IncludeChecks)

# Checks for functions and other symbols
include(SymbolChecks)

# Standard installation paths
include(GNUInstallDirs)
# Documentation install directory (default to cmake project docdir)
set(LIBTIFF_DOCDIR "${CMAKE_INSTALL_DOCDIR}")

if(FALSE) # XXX(ITK): ITK handles testing
# CTest testing
enable_testing()
endif()

# Checks for type presence and size
include(TypeSizeChecks)

# Check for POSIX Large File Support (LFS)
include(LargeFileSupport)

# Options for internal codec support
include(InternalCodecs)

# Check for Deflate codec
include(DeflateCodec)

# Check for PixarLog codec
include(PixarLogCodec)

# Check for JPEG codec
include(JPEGCodec)

# Check for JBIG codec
include(JBIGCodec)

# Check for LERC codec
include(LERCCodec)

# Check for LZMA codec
include(LZMACodec)

# Check for ZSTD codec
include(ZSTDCodec)

# Check for WebP codec
include(WebPCodec)

# Option for C++ libtiffxx library
include(CXXLibrary)

# Checks for OpenGL support
include(OpenGLChecks)

# Windows support
include(WindowsSupport)

# Orthogonal features
include(LibraryFeatures)


# math.h/libm portability
find_package(CMath REQUIRED)

if(FALSE) # XXX(ITK): We do not create TIFF releases.
# Release support
include(Release)
endif()

# Process subdirectories
add_subdirectory(port)
add_subdirectory(libtiff)
return() # XXX(ITK): We do not need TIFF project infrastructure.
if(tiff-tools)
add_subdirectory(tools)
endif()
if(tiff-tests)
add_subdirectory(test)
endif()
if(tiff-contrib)
add_subdirectory(contrib)
endif()
add_subdirectory(build)
if(tiff-docs)
add_subdirectory(doc)
endif()

# pkg-config support
include(PkgConfig)

message(STATUS "")
message(STATUS "Libtiff is now configured for ${CMAKE_SYSTEM}")
message(STATUS "")
if (NOT LIBTIFF_RELEASE_VERSION STREQUAL LIBTIFF_VERSION_FULL)
message(STATUS " Libtiff release version ${LIBTIFF_RELEASE_VERSION} is not equal to build version!")
endif()
message(STATUS " Libtiff build version: ${LIBTIFF_VERSION_FULL}")
message(STATUS " Libtiff library version: ${SO_VERSION}")
message(STATUS " Libtiff release date: ${LIBTIFF_RELEASE_DATE}")
message(STATUS "")
message(STATUS " Installation directory: ${prefix}")
message(STATUS " Documentation directory: ${LIBTIFF_DOCDIR}")
message(STATUS " C compiler: ${CMAKE_C_COMPILER}")
message(STATUS " C++ compiler: ${CMAKE_CXX_COMPILER}")
message(STATUS " Build shared libraries: ${BUILD_SHARED_LIBS}")
message(STATUS " Build tools: ${tiff-tools}")
message(STATUS " Build tests: ${tiff-tests}")
message(STATUS " Build contrib: ${tiff-contrib}")
message(STATUS " Build docs: ${tiff-docs}")
message(STATUS " Build deprecated features: ${tiff-deprecated}")
message(STATUS " Enable linker symbol versioning: ${HAVE_LD_VERSION_SCRIPT}")
message(STATUS " Support Microsoft Document Imaging: ${mdi}")
message(STATUS " Use win32 IO: ${USE_WIN32_FILEIO}")
message(STATUS "")
message(STATUS " Support for internal codecs:")
message(STATUS " CCITT Group 3 & 4 algorithms: ${ccitt}")
message(STATUS " Macintosh PackBits algorithm: ${packbits}")
message(STATUS " LZW algorithm: ${lzw}")
message(STATUS " ThunderScan 4-bit RLE algorithm: ${thunder}")
message(STATUS " NeXT 2-bit RLE algorithm: ${next}")
message(STATUS " LogLuv high dynamic range encoding: ${logluv}")
message(STATUS "")
message(STATUS " Support for external codecs:")
message(STATUS " ZLIB support: Requested:${zlib} Availability:${ZLIB_FOUND} Support:${ZLIB_SUPPORT}")
if(ZLIB_SUPPORT)
message(STATUS " libdeflate support: Requested:${libdeflate} Availability:${DEFLATE_FOUND} Support:${LIBDEFLATE_SUPPORT}")
else()
message(STATUS " libdeflate support: Requested:${libdeflate} Availability:${DEFLATE_FOUND} Support:${LIBDEFLATE_SUPPORT} (Depends on ZLIB Support)")
endif()
if(ZLIB_SUPPORT)
message(STATUS " Pixar log-format algorithm: Requested:${pixarlog} Availability:${ZLIB_FOUND} Support:${PIXARLOG_SUPPORT}")
else()
message(STATUS " Pixar log-format algorithm: Requested:${pixarlog} Availability:${ZLIB_FOUND} Support:${PIXARLOG_SUPPORT} (Depends on ZLIB Support)")
endif()
message(STATUS " JPEG support: Requested:${jpeg} Availability:${JPEG_FOUND} Support:${JPEG_SUPPORT}")
if(JPEG_SUPPORT)
message(STATUS " Old JPEG support: Requested:${old-jpeg} Availability:${JPEG_SUPPORT} Support:${OJPEG_SUPPORT}")
else()
message(STATUS " Old JPEG support: Requested:${old-jpeg} Availability:${JPEG_SUPPORT} Support:${OJPEG_SUPPORT} (Depends on JPEG Support)")
endif()
if(JPEG_SUPPORT AND HAVE_JPEGTURBO_DUAL_MODE_8_12)
message(STATUS " JPEG 8/12 bit dual mode: Support: yes (libjpeg turbo >= 3.0 dual mode)")
else()
message(STATUS " JPEG 8/12 bit dual mode: Requested:${jpeg12} Availability:${JPEG12_FOUND} Support:${JPEG_DUAL_MODE_8_12}")
endif()
message(STATUS " ISO JBIG support: Requested:${jbig} Availability:${JBIG_FOUND} Support:${JBIG_SUPPORT}")
if(ZLIB_SUPPORT)
message(STATUS " LERC support: Requested:${lerc} Availability:${LERC_FOUND} Support:${LERC_SUPPORT}")
else()
message(STATUS " LERC support: Requested:${lerc} Availability:${LERC_FOUND} Support:${LERC_SUPPORT} (Depends on ZLIB Support)")
endif()
message(STATUS " LZMA2 support: Requested:${lzma} Availability:${liblzma_FOUND} Support:${LZMA_SUPPORT}")
message(STATUS " ZSTD support: Requested:${zstd} Availability:${ZSTD_USABLE} Support:${ZSTD_SUPPORT}")
message(STATUS " WEBP support: Requested:${webp} Availability:${WebP_FOUND} Support:${WEBP_SUPPORT}")
message(STATUS "")
message(STATUS " C++ support: ${cxx} (requested) ${CXX_SUPPORT} (availability)")
message(STATUS "")
# message(STATUS " X Athena Widgets support: ${HAVE_XAW}")
message(STATUS " OpenGL support: Requested:${tiff-opengl} Availability:${HAVE_OPENGL} Support:${OPENGL_SUPPORT}")
message(STATUS "")
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
Copyright (c) 1988-1997 Sam Leffler
Copyright (c) 1991-1997 Silicon Graphics, Inc.
# LibTIFF license

Copyright © 1988-1997 Sam Leffler\
Copyright © 1991-1997 Silicon Graphics, Inc.

Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, provided
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
$Header: /cvs/maptools/cvsroot/libtiff/README,v 1.7 2012-02-18 21:53:27 bfriesen Exp $


TIFF Software Distribution
--------------------------
This file is just a placeholder; all the documentation is now in
HTML in the html directory. To view the documentation point your
favorite WWW viewer at html/index.html;

e.g.

firefox html/index.html
This file is just a placeholder; the entire documentation is now located
as reStructuredText in the doc directory. To view the documentation
as HTML, visit https://libtiff.gitlab.io/libtiff/ or
http://www.simplesystems.org/libtiff/ or within the release package
in the doc/html-prebuilt directory. The manual pages are
located at doc/man-prebuilt.

If you don't have an HTML viewer then you can read the HTML source
or fetch a PostScript version of this documentation from the directory
The release package can be downloaded at

ftp://ftp.remotesensing.org/pub/libtiff/
http://download.osgeo.org/libtiff/

If you can't hack either of these options then basically what you
want to do is:
Expand All @@ -25,8 +20,21 @@ want to do is:
# make install

More information, email contacts, and mailing list information can be
found online at http://www.remotesensing.org/libtiff/.
found online at http://www.simplesystems.org/libtiff/

Source code repository
----------------------

[GitLab](https://gitlab.com/libtiff/libtiff)

Bug database
------------

[GitLab issues](https://gitlab.com/libtiff/libtiff/issues)

Previously, the project used
[Bugzilla](http://bugzilla.maptools.org/buglist.cgi?product=libtiff). This
is no longer in use, and all remaining issues have been migrated to GitLab.

Use and Copyright
-----------------
Expand Down
Loading

0 comments on commit 7e3492b

Please sign in to comment.