PORTNAME=	libavif
PORTVERSION=	1.1.1
DISTVERSIONPREFIX=	v
CATEGORIES=	graphics

MAINTAINER=	sunpoet@FreeBSD.org
COMMENT=	Library for encoding and decoding .avif files
WWW=		https://github.com/AOMediaCodec/libavif

LICENSE=	BSD2CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE

LIB_DEPENDS=	libpng.so:graphics/png
TEST_DEPENDS=	bash:shells/bash \
		googletest>=0:devel/googletest

USES=		cmake:testing compiler:c11 cpe jpeg pkgconfig

CMAKE_ARGS=	-DAVIF_GTEST:STRING=OFF \
		-DAVIF_ZLIBPNG:STRING=SYSTEM
CMAKE_OFF=	AVIF_BUILD_EXAMPLES
CMAKE_ON=	AVIF_BUILD_APPS
CMAKE_TESTING_ARGS=	-DAVIF_GTEST:STRING=SYSTEM
CMAKE_TESTING_ON=	AVIF_BUILD_TESTS
USE_LDCONFIG=	yes

USE_GITHUB=	yes
GH_ACCOUNT=	AOMediaCodec

CPE_VENDOR=	aomedia

OPTIONS_DEFINE=	MANPAGES PIXBUF
OPTIONS_GROUP=	AV1 COLOR
OPTIONS_GROUP_AV1=	AOM DAV1D GAV1 RAV1E SVTAV1
OPTIONS_GROUP_COLOR=	LIBSHARPYUV LIBYUV
OPTIONS_DEFAULT=AOM DAV1D LIBYUV PIXBUF
OPTIONS_SUB=	yes
AOM_DESC=		AV1 encoding/decoding via libaom
DAV1D_DESC=		AV1 decoding via libdav1d
GAV1_DESC=		AV1 decoding via libgav1
LIBSHARPYUV_DESC=	Colorspace conversion via libsharpyuv
LIBYUV_DESC=		Colorspace conversion via libyuv
MANPAGES_DESC=		Install manpages (requires pandoc)
RAV1E_DESC=		AV1 encoding via librav1e
SVTAV1_DESC=		AV1 encoding via SVT-AV1

AOM_CMAKE_OFF=		-DAVIF_CODEC_AOM:STRING=OFF
AOM_CMAKE_ON=		-DAVIF_CODEC_AOM:STRING=SYSTEM
AOM_LIB_DEPENDS=	libaom.so:multimedia/aom
DAV1D_CMAKE_OFF=	-DAVIF_CODEC_DAV1D:STRING=OFF
DAV1D_CMAKE_ON=		-DAVIF_CODEC_DAV1D:STRING=SYSTEM
DAV1D_LIB_DEPENDS=	libdav1d.so:multimedia/dav1d
GAV1_CMAKE_OFF=		-DAVIF_CODEC_LIBGAV1:STRING=OFF
GAV1_CMAKE_ON=		-DAVIF_CODEC_LIBGAV1:STRING=SYSTEM
GAV1_LIB_DEPENDS=	libgav1.so:multimedia/libgav1
LIBSHARPYUV_CMAKE_OFF=	-DAVIF_LIBSHARPYUV:STRING=OFF
LIBSHARPYUV_CMAKE_ON=	-DAVIF_LIBSHARPYUV:STRING=SYSTEM
LIBSHARPYUV_LIB_DEPENDS=libsharpyuv.so:graphics/webp
LIBYUV_CMAKE_OFF=	-DAVIF_LIBYUV:STRING=OFF
LIBYUV_CMAKE_ON=	-DAVIF_LIBYUV:STRING=SYSTEM
LIBYUV_LIB_DEPENDS=	libyuv.so:graphics/libyuv
MANPAGES_BUILD_DEPENDS=	pandoc:textproc/hs-pandoc
MANPAGES_CMAKE_BOOL=	AVIF_BUILD_MAN_PAGES
PIXBUF_CMAKE_BOOL=	AVIF_BUILD_GDK_PIXBUF
PIXBUF_USE=		GNOME=gdkpixbuf2
PIXBUF_USES=		gnome
RAV1E_CMAKE_OFF=	-DAVIF_CODEC_RAV1E:STRING=OFF
RAV1E_CMAKE_ON=		-DAVIF_CODEC_RAV1E:STRING=SYSTEM
RAV1E_LIB_DEPENDS=	librav1e.so:multimedia/librav1e
SVTAV1_CMAKE_OFF=	-DAVIF_CODEC_SVT:STRING=OFF
SVTAV1_CMAKE_ON=	-DAVIF_CODEC_SVT:STRING=SYSTEM
SVTAV1_LIB_DEPENDS=	libSvtAv1Enc.so:multimedia/svt-av1

.include <bsd.port.mk>
