summaryrefslogtreecommitdiff
path: root/graphics/openimageio/Makefile
blob: d4ae0f6e0df725c21f57a0cf7531c0ce7d097601 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
PORTNAME=	openimageio
DISTVERSIONPREFIX=	v
DISTVERSION=	2.5.13.0
# PORTREVISION must be set with ?= so as not to stomp over
# py-openimageio's PORTREVISION.
# Also, just to be on the safe side, when resetting,
# best keep PORTREVISION?=	0.
PORTREVISION?=	1
CATEGORIES?=	graphics multimedia

MAINTAINER?=	FreeBSD@Shaneware.biz
COMMENT?=	OpenImageIO graphics library
WWW=		https://www.openimageio.org/

LICENSE=	BSD3CLAUSE

BUILD_DEPENDS=	${LOCALBASE}/include/tsl/robin_map.h:devel/robin-map \
		libfmt>10.0.0:devel/libfmt \
		libjpeg-turbo>3.0.0:graphics/libjpeg-turbo
LIB_DEPENDS=	libboost_thread.so:devel/boost-libs \
		libImath.so:math/Imath \
		libOpenColorIO.so:graphics/opencolorio \
		libOpenEXR.so:graphics/openexr \
		libheif.so:graphics/libheif \
		libpng.so:graphics/png \
		libpugixml.so:textproc/pugixml \
		libtiff.so:graphics/tiff \
		libwebp.so:graphics/webp
RUN_DEPENDS=	libfmt>10.0.0:devel/libfmt \
		libjpeg-turbo>3.0.0:graphics/libjpeg-turbo

USES=		cmake jpeg compiler:c++17-lang iconv:wchar_t

USE_GITHUB=	yes
GH_ACCOUNT=	AcademySoftwareFoundation
GH_PROJECT=	OpenImageIO

CMAKE_ARGS=	-DCMAKE_CXX_STANDARD:INTEGER=17 # OpenVDB uses the C++17 STL
# feature std::tuple_size_v; since the slave port py-openimageio excludes
# options - this is a global line here
CMAKE_ON=	BUILD_SHARED_LIBS USE_EXTERNAL_PUGIXML
CMAKE_OFF=	BUILD_FMT_FORCE BUILD_MISSING_FMT INSTALL_FONTS INTERNALIZE_FMT \
		LINKSTATIC OIIO_DOWNLOAD_MISSING_TESTDATA OIIO_USING_FMT_LOCAL \
		STOP_ON_WARNING

SHL1=		${PORTVERSION:R:R:R}
SHL2=		${PORTVERSION:R:R}
SHL3=		${PORTVERSION:R}
PLIST_SUB=	SHL1=${SHL1} SHL2=${SHL2} SHL3=${SHL3}

OPTIONS_DEFINE=		DICOM DOCS FFMPEG FREETYPE GIF IMAGEVIEWER \
			OPENCV OPENJPEG PTEX RAW TBB TEST TOOLS VDB
OPTIONS_DEFAULT=	DICOM FREETYPE GIF OPENJPEG PTEX TBB TOOLS VDB
OPTIONS_SUB=		yes

DICOM_DESC=		DICOM/MEDICOM support
FFMPEG_DESC=		Use FFmpeg to support extra file types
IMAGEVIEWER_DESC=	Build image viewer (requires Qt)
PTEX_DESC=		Per face texture library support
TBB_DESC=		Intel tbb support
TOOLS_DESC=		Build CLI tools
VDB_DESC=		OpenVDB support

DICOM_LIB_DEPENDS=	libdcmimage.so:graphics/dcmtk
DICOM_USES=		gnome ssl
DICOM_USE=		gnome=libxml2
DICOM_CMAKE_BOOL=	USE_DICOM

DOCS_CMAKE_BOOL=	INSTALL_DOCS
DOCS_CMAKE_ON=		-DCMAKE_INSTALL_DOCDIR:STRING=${DOCSDIR}

FFMPEG_LIB_DEPENDS=	libavutil.so:multimedia/ffmpeg
FFMPEG_CMAKE_BOOL=	USE_FFMPEG

FREETYPE_LIB_DEPENDS=	libfreetype.so:print/freetype2
FREETYPE_RUN_DEPENDS=	${LOCALBASE}/share/fonts/Droid/DroidSans.ttf:x11-fonts/droid-fonts-ttf
FREETYPE_CMAKE_BOOL=	USE_FREETYPE

GIF_LIB_DEPENDS=	libgif.so:graphics/giflib
GIF_CMAKE_BOOL=		USE_GIF

IMAGEVIEWER_IMPLIES=	TOOLS
IMAGEVIEWER_USES=	gl qt:6
IMAGEVIEWER_USE=	GL=gl,glu QT=base
IMAGEVIEWER_CMAKE_BOOL=	USE_QT

OPENCV_IMPLIES=		OPENJPEG
OPENCV_LIB_DEPENDS=	libopencv_core.so:graphics/opencv
OPENCV_CMAKE_BOOL=	USE_OPENCV

OPENJPEG_LIB_DEPENDS=	libopenjp2.so:graphics/openjpeg
OPENJPEG_CMAKE_BOOL=	USE_OPENJPEG

PTEX_LIB_DEPENDS=	libPtex.so:graphics/ptex
PTEX_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_Ptex

RAW_LIB_DEPENDS=	libraw_r.so:graphics/libraw
RAW_CMAKE_BOOL=		USE_LIBRAW

TBB_LIB_DEPENDS=	libtbb.so:devel/onetbb
TBB_CMAKE_BOOL=		USE_TBB

TEST_CMAKE_BOOL=	OIIO_BUILD_TESTS

TOOLS_CMAKE_BOOL=	OIIO_BUILD_TOOLS

VDB_IMPLIES=		TBB
VDB_LIB_DEPENDS=	libopenvdb.so:misc/openvdb
VDB_CMAKE_BOOL=		USE_OPENVDB

post-patch:
	@${REINPLACE_CMD} -e "s,%%LOCALBASE%%,${LOCALBASE}," \
	${WRKSRC}/src/cmake/modules/FindPtex.cmake

.include <bsd.port.options.mk>

.if ${SLAVE_PORT} == yes
BUILD_DEPENDS+=	${PREFIX}/share/cmake/pybind11/pybind11Config.cmake:devel/pybind11
LIB_DEPENDS+=	libOpenImageIO.so:graphics/openimageio
USES+=		python
USE_PYTHON=	flavors
CMAKE_ARGS+=	-DPYTHON_VERSION:STRING=${PYTHON_VER}
CMAKE_ON+=	USE_PYTHON
# we don't need the apps built - only libs.
CMAKE_OFF+=	EMBED_PLUGINS OIIO_BUILD_TESTS OIIO_BUILD_TOOLS USE_DICOM USE_FFMPEG USE_FREETYPE USE_GIF USE_LIBRAW USE_OPENCV USE_OPENJPEG USE_OPENVDB USE_QT USE_TBB
PLIST=		${PKGDIR}/pkg-plist-pybind

do-install:
	${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
	${INSTALL_LIB} ${BUILD_WRKSRC}/lib/python/site-packages/OpenImageIO*.so ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
.else # SLAVE_PORT != yes
USE_LDCONFIG=	yes
CMAKE_OFF+=	USE_PYTHON

post-install:
	${LN} -sf libOpenImageIO.so.${SHL3} \
		${STAGEDIR}${PREFIX}/lib/libOpenImageIO.so.${SHL2}
	${LN} -sf libOpenImageIO.so.${SHL3} \
		${STAGEDIR}${PREFIX}/lib/libOpenImageIO.so.${SHL1}
	${LN} -sf libOpenImageIO_Util.so.${SHL3} \
		${STAGEDIR}${PREFIX}/lib/libOpenImageIO_Util.so.${SHL2}
	${LN} -sf libOpenImageIO_Util.so.${SHL3} \
		${STAGEDIR}${PREFIX}/lib/libOpenImageIO_Util.so.${SHL1}

do-test-TEST-on:
	@cd ${BUILD_WRKSRC} && ${SETENV} ARGS=-V ${MAKE_CMD} test
.endif # SLAVE_PORT

.include <bsd.port.mk>