aboutsummaryrefslogtreecommitdiff
path: root/multimedia/arcan/Makefile
blob: 52b178ebb3e82060d20e407b373b295b3633549f (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
# $FreeBSD$

PORTNAME=	arcan
DISTVERSION=	0.6.0
CATEGORIES=	multimedia

PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
PATCHFILES+=	7cf3d1066faf.patch:-p2 # https://github.com/letoram/arcan/pull/205
PATCHFILES+=	f40395b6755d.patch:-p2 # https://github.com/letoram/arcan/pull/205
PATCHFILES+=	b519eb023e20.patch:-p2 # https://github.com/letoram/arcan/pull/205
PATCHFILES+=	d6b52b1b3601.patch:-p2 # https://github.com/letoram/arcan/pull/205
PATCHFILES+=	d8a262d6d19a.patch:-p2 # https://github.com/letoram/arcan/pull/205

MAINTAINER=	jbeich@FreeBSD.org
COMMENT=	Display Server, Multimedia Framework, Game Engine

LICENSE=	BSD3CLAUSE GPLv2+ LGPL21
LICENSE_COMB=	multi
LICENSE_FILE_BSD3CLAUSE=${WRKSRC:H}/data/distr/LICENSE.BSD
LICENSE_FILE_GPLv2+ =	${WRKSRC:H}/data/distr/LICENSE.GPL
LICENSE_FILE_LGPL21+ =	${WRKSRC:H}/data/distr/LICENSE.LGPL

LIB_DEPENDS=	libdrm.so:graphics/libdrm \
		libfreetype.so:print/freetype2
RUN_DEPENDS=	mesa-dri>0:graphics/mesa-dri

USES=		cmake gl iconv openal pkgconfig sqlite
USE_GITHUB=	yes
USE_GL=		egl gbm gl
USE_LDCONFIG=	yes
GH_ACCOUNT=	letoram
WRKSRC_SUBDIR=	src
CMAKE_ON=	HYBRID_HEADLESS
CMAKE_ARGS=	-DENGINE_BUILDTAG:STRING="${DISTVERSIONFULL}"
LDFLAGS+=	-Wl,--as-needed # bzip2, ffmpeg, librt, libutil, lzma, zlib

OPTIONS_DEFINE=	ESPEAK FFMPEG LUAJIT SDL TESSERACT UVC VLC VNC WAYLAND
OPTIONS_DEFAULT=ESPEAK FFMPEG LUAJIT SDL TESSERACT UVC VLC VNC WAYLAND
OPTIONS_EXCLUDE_aarch64=	LUAJIT # bug 225342
OPTIONS_EXCLUDE_powerpc64=	LUAJIT
OPTIONS_EXCLUDE_FreeBSD_11=	VLC # no Qt5
OPTIONS_SUB=	yes

ESPEAK_DESC=		Text to speech via eSpeak
ESPEAK_LIB_DEPENDS=	libespeak.so:audio/espeak

FFMPEG_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg

LUAJIT_DESC=		Use LuaJIT instead of standard Lua
LUAJIT_LIB_DEPENDS=	libluajit-5.1.so:lang/luajit
LUAJIT_USES_OFF=	lua:51
LUAJIT_CMAKE_BOOL_OFF=	DISABLE_JIT

SDL_USES=		sdl
SDL_USE=		SDL=sdl2
SDL_CMAKE_BOOL=		HYBRID_SDL

TESSERACT_DESC=		Optical Character Recognition via Tesseract
TESSERACT_LIB_DEPENDS=	libtesseract.so:graphics/tesseract

VLC_DESC=		Video decode via libvlc
VLC_LIB_DEPENDS=	libvlc.so:multimedia/vlc

UVC_DESC=		USB video cameras via libuvc
UVC_LIB_DEPENDS=	libuvc.so:multimedia/libuvc
UVC_CMAKE_BOOL=		FSRV_DECODE_UVC

VNC_DESC=		VNC client/server support
VNC_LIB_DEPENDS=	libvncserver.so:net/libvncserver

WAYLAND_BUILD_DEPENDS=	wayland-protocols>0:graphics/wayland-protocols
WAYLAND_LIB_DEPENDS=	libwayland-server.so:graphics/wayland \
			libxcb-icccm.so:x11/xcb-util-wm \
			libxkbcommon.so:x11/libxkbcommon
WAYLAND_USES=		xorg
WAYLAND_USE=		XORG=xcb
WAYLAND_CMAKE_BOOL_OFF=	DISABLE_WAYLAND

post-patch-ESPEAK-off:
	@${REINPLACE_CMD} -i.noespeak '/find.*Espeak/d' \
		${WRKSRC}/frameserver/decode/default/CMakeLists.txt

post-patch-FFMPEG-off:
	@${REINPLACE_CMD} -i.noffmpeg '/pkg.*FFMPEG/d' \
		${WRKSRC}/a12/CMakeLists.txt \
		${WRKSRC}/frameserver/decode/default/CMakeLists.txt \
		${WRKSRC}/frameserver/encode/default/CMakeLists.txt

post-patch-TESSERACT-off:
	@${REINPLACE_CMD} -i.notesseract '/pkg.*tesseract/d' \
		${WRKSRC}/frameserver/encode/default/CMakeLists.txt

post-patch-VNC-off:
	@${REINPLACE_CMD} -i.novnc '/pkg.*libvnc/d' \
		${WRKSRC}/frameserver/encode/default/CMakeLists.txt \
		${WRKSRC}/frameserver/remoting/default/CMakeLists.txt

.include <bsd.port.mk>