aboutsummaryrefslogtreecommitdiff
path: root/graphics/embree/Makefile
blob: b4ef42e3e2548c04f582828b3d35c12072adc23b (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
PORTNAME=	embree
PORTVERSION=	3.13.5
PORTREVISION=	7
DISTVERSIONPREFIX=	v
CATEGORIES=	graphics

MAINTAINER=	danfe@FreeBSD.org
COMMENT=	Collection of high-performance ray tracing kernels
WWW=		https://www.embree.org/

LICENSE=	APACHE20

ONLY_FOR_ARCHS=	amd64 i386
ONLY_FOR_ARCHS_REASON=	heavy use of SSE instructions

USES=		cmake pkgconfig
USE_LDCONFIG=	yes
USE_GITHUB=	yes

CMAKE_ARGS=	-DEMBREE_TASKING_SYSTEM:STRING=${_ETS} \
		-DCMAKE_INSTALL_DOCDIR:STRING=${DOCSDIR} \
		-DEMBREE_RAY_MASK:BOOL=ON

PLIST_SUB+=	VERSION=${DISTVERSION}

OPTIONS_DEFINE=	BACKFACE_CULLING DOCS EXAMPLES ISPC TBB
OPTIONS_DEFAULT=	ISPC TBB
OPTIONS_SUB=	yes

BACKFACE_CULLING_DESC=	Enable back-face culling (BFC)
BACKFACE_CULLING_CMAKE_ON=	-DEMBREE_BACKFACE_CULLING:BOOL=ON

ISPC_DESC=		ISPC applications support
ISPC_BUILD_DEPENDS=	ispc:devel/ispc
ISPC_CMAKE_OFF=		-DEMBREE_ISPC_SUPPORT:BOOL=OFF

EXAMPLES_LIB_DEPENDS=	libglfw.so:graphics/glfw \
			libpng.so:graphics/png
EXAMPLES_USES=		gl jpeg xorg
EXAMPLES_USE=		GL=gl,glu,glut XORG=x11,xau,xcb,xdmcp
EXAMPLES_CMAKE_OFF=	-DEMBREE_TUTORIALS:BOOL=OFF

TBB_DESC=		Use Intel TBB (optimal performance)
TBB_LIB_DEPENDS=	libtbb.so:devel/onetbb
TBB_VARS=		_ETS=TBB
TBB_VARS_OFF=		_ETS=INTERNAL

.include <bsd.port.pre.mk>

# Disable parts that use _mm_cvtsi128_si64() which is not defined on i386
.if ${ARCH} == i386
CMAKE_ARGS+=	-DEMBREE_ISA_AVX512:BOOL=OFF
.endif

post-patch:
	@${REINPLACE_CMD} -e \
	    '/SET(CMAKE_INSTALL_BINDIR/s,\$$.*),${EXAMPLESDIR}"),' \
		${WRKSRC}/common/cmake/package.cmake
	@${REINPLACE_CMD} -e 's,Win32,${OPSYS},gi' \
		${WRKSRC}/common/simd/vint4_sse2.h
# Obsolete GNU binutils 2.17.50 objdump(1) is going to be removed
# from the base, use LLVM's one if it's available
.if exists(/usr/bin/llvm-objdump)
	@${REINPLACE_CMD} -e 's,objdump,llvm-&,' \
		${WRKSRC}/common/cmake/check_globals.cmake \
		${WRKSRC}/common/cmake/check_stack_frame_size.cmake
.endif

do-test:
	${TEST_WRKSRC}/${PORTNAME}_verify

.include <bsd.port.post.mk>