From 37e523cb20a4fde62e4ce8a3d8429c63dca76e7f Mon Sep 17 00:00:00 2001 From: Po-Chuan Hsieh Date: Sun, 25 May 2025 17:52:12 +0800 Subject: [PATCH] graphics/libertiff: Add libertiff 0.0.0.20250111 Libertiff is a C++11 simple, header-only, TIFF reader. It is MIT licensed. Handles both ClassicTIFF and BigTIFF, little-endian or big-endian ordered. The library does not offer codec facilities (and probably won't). It is mostly aimed at browsing through the linked chain of Image File Directory (IFD) and their tags. "Offline" tag values are not loaded at IFD opening time, but only upon request, which helps handling files with tags with an arbitrarily large number of values. The library is thread-safe (that is the instances that it returns can be used from multiple threads), if passed FileReader instances are themselves thread-safe. The library does not throw exceptions (but underlying std library might throw exceptions in case of out-of-memory situations) Optional features: - define LIBERTIFF_C_FILE_READER before including libertiff.hpp, so that the libertiff::CFileReader class is available --- graphics/Makefile | 1 + graphics/libertiff/Makefile | 24 +++++++++++++++++++ graphics/libertiff/distinfo | 3 +++ graphics/libertiff/files/patch-CMakeLists.txt | 8 +++++++ graphics/libertiff/pkg-descr | 21 ++++++++++++++++ 5 files changed, 57 insertions(+) create mode 100644 graphics/libertiff/Makefile create mode 100644 graphics/libertiff/distinfo create mode 100644 graphics/libertiff/files/patch-CMakeLists.txt create mode 100644 graphics/libertiff/pkg-descr diff --git a/graphics/Makefile b/graphics/Makefile index 08e8725a6aed..c7113deb4e8d 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -463,6 +463,7 @@ SUBDIR += libecwj2 SUBDIR += libemf SUBDIR += libepoxy + SUBDIR += libertiff SUBDIR += libetonyek01 SUBDIR += libexif SUBDIR += libexif-gtk diff --git a/graphics/libertiff/Makefile b/graphics/libertiff/Makefile new file mode 100644 index 000000000000..3e7477a47701 --- /dev/null +++ b/graphics/libertiff/Makefile @@ -0,0 +1,24 @@ +PORTNAME= libertiff +PORTVERSION= 0.0.0.20250111 +CATEGORIES= graphics + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= C++11 simple, header-only, TIFF reader +WWW= https://github.com/libertiff/libertiff + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE.md + +TEST_DEPENDS= googletest>=1.12.1:devel/googletest + +USES= cmake:testing compiler:c++11-lang + +CMAKE_TESTING_ON= USE_EXTERNAL_GTEST +NO_ARCH= yes + +PLIST_FILES= include/libertiff.hpp + +USE_GITHUB= yes +GH_TAGNAME= 7fc74e7 + +.include diff --git a/graphics/libertiff/distinfo b/graphics/libertiff/distinfo new file mode 100644 index 000000000000..d9d97259b86b --- /dev/null +++ b/graphics/libertiff/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1747715286 +SHA256 (libertiff-libertiff-0.0.0.20250111-7fc74e7_GH0.tar.gz) = a1953a2541414e8a26f793b4f963bb9581ade23e193ee437c973eba907be4c5d +SIZE (libertiff-libertiff-0.0.0.20250111-7fc74e7_GH0.tar.gz) = 19972 diff --git a/graphics/libertiff/files/patch-CMakeLists.txt b/graphics/libertiff/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..9f7ffa3e8846 --- /dev/null +++ b/graphics/libertiff/files/patch-CMakeLists.txt @@ -0,0 +1,8 @@ +--- CMakeLists.txt.orig 2025-01-11 21:34:33 UTC ++++ CMakeLists.txt +@@ -16,3 +16,5 @@ add_subdirectory(tests) + add_executable(demo demo.cpp) + + add_subdirectory(tests) ++ ++install(FILES libertiff.hpp DESTINATION ${CMAKE_INSTALL_PREFIX}/include) diff --git a/graphics/libertiff/pkg-descr b/graphics/libertiff/pkg-descr new file mode 100644 index 000000000000..0fe97e1900c9 --- /dev/null +++ b/graphics/libertiff/pkg-descr @@ -0,0 +1,21 @@ +Libertiff is a C++11 simple, header-only, TIFF reader. It is MIT licensed. + +Handles both ClassicTIFF and BigTIFF, little-endian or big-endian ordered. + +The library does not offer codec facilities (and probably won't). It is mostly +aimed at browsing through the linked chain of Image File Directory (IFD) and +their tags. + +"Offline" tag values are not loaded at IFD opening time, but only upon request, +which helps handling files with tags with an arbitrarily large number of values. + +The library is thread-safe (that is the instances that it returns can be used +from multiple threads), if passed FileReader instances are themselves +thread-safe. + +The library does not throw exceptions (but underlying std library might throw +exceptions in case of out-of-memory situations) + +Optional features: +- define LIBERTIFF_C_FILE_READER before including libertiff.hpp, so that the + libertiff::CFileReader class is available