blob: 0f81d93365f200442f11227bc05538ae7aefcf59 (
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
# $FreeBSD$
PORTNAME= kodi
CATEGORIES= multimedia
DISTVERSION= 18.0.g201809092101
PKGNAMESUFFIX?= -devel
MAINTAINER= tobik@FreeBSD.org
COMMENT= Award winning media center application
LICENSE= GPLv2+
ONLY_FOR_ARCHS= amd64 armv6 armv7 i386
BUILD_DEPENDS= flatbuffers>=0:devel/flatbuffers \
rapidjson>=0:devel/rapidjson \
swig3.0:devel/swig30
LIB_DEPENDS= libass.so:multimedia/libass \
libavcodec.so:multimedia/ffmpeg \
libavfilter.so:multimedia/ffmpeg \
libavformat.so:multimedia/ffmpeg \
libavutil.so:multimedia/ffmpeg \
libcdio.so:sysutils/libcdio \
libcrossguid.so:devel/libcrossguid \
libcurl.so:ftp/curl \
libdvdnav.so:multimedia/libdvdnav \
libdvdread.so:multimedia/libdvdread \
libexpat.so:textproc/expat2 \
libfmt.so:devel/libfmt \
libfreetype.so:print/freetype2 \
libfribidi.so:converters/fribidi \
libfstrcmp.so:devel/fstrcmp \
libgif.so:graphics/giflib \
libgnutls.so:security/gnutls \
liblcms2.so:graphics/lcms2 \
liblzo2.so:archivers/lzo2 \
libpcre.so:devel/pcre \
libpcrecpp.so:devel/pcre \
libpng.so:graphics/png \
libpostproc.so:multimedia/ffmpeg \
libswresample.so:multimedia/ffmpeg \
libswscale.so:multimedia/ffmpeg \
libtag.so:audio/taglib \
libtinyxml.so:textproc/tinyxml \
libudev.so:devel/libudev-devd \
libuuid.so:misc/e2fsprogs-libuuid
# Building libcpluff.a requires autoreconf and gmake. Using ninja
# leads to dependency problems where libcpluff.a is not yet finished
# building when it's required.
USES= autoreconf:build cmake:outsource,noninja compiler:c++11-lib \
gettext gmake gnome iconv:wchar_t jpeg libtool pkgconfig \
python:2.7 ssl sqlite
USE_GITHUB= yes
GH_ACCOUNT= xbmc
GH_PROJECT= xbmc
GH_TAGNAME= 18.0b2-Leia
USE_GNOME= libxslt libxml2
USE_JAVA= yes
JAVA_BUILD= yes
USE_LDCONFIG= yes
CONFLICTS_INSTALL= kodi
CMAKE_ARGS= -DLIBDVD_INCLUDE_DIRS="${LOCALBASE}/include" \
-DDVDREAD_LIBRARY="${LOCALBASE}/lib/libdvdread.so" \
-DDVDNAV_LIBRARY="${LOCALBASE}/lib/libdvdnav.so"
CMAKE_OFF= ENABLE_ALSA \
ENABLE_DVDCSS \
ENABLE_INTERNAL_FFMPEG \
ENABLE_INTERNAL_CROSSGUID
CONFIGURE_ENV= OPENSSL_LIBS="-L${OPENSSLLIB}" OPENSSL_CFLAGS="-I${OPENSSLINC}" \
CPU_FEATURES=" Features=0xdeadbeef<${CPU_FEATURES:ts,}>"
KODIARCH_i386= x86
KODIARCH_amd64= x86_64
PLIST_SUB= ARCH=${KODIARCH_${ARCH}:U${ARCH}} OPSYS=${OPSYS:tl}
OPTIONS_DEFINE= AVAHI CEC DBUS LIBBLURAY MYSQL NFS SMB UPNP VAAPI VDPAU WEBSERVER
OPTIONS_DEFINE_amd64= SSE
OPTIONS_DEFINE_i386= SSE
OPTIONS_DEFAULT= LIBBLURAY UPNP VAAPI VDPAU WEBSERVER X11
OPTIONS_DEFAULT_amd64= SSE
OPTIONS_SINGLE= PLATFORM
OPTIONS_SINGLE_PLATFORM= GBM RPI WAYLAND X11
OPTIONS_EXCLUDE_amd64= RPI
OPTIONS_EXCLUDE_i386= RPI
OPTIONS_SUB= yes
OPTIONS_GROUP= SOUND
OPTIONS_GROUP_SOUND= PULSEAUDIO SNDIO
CEC_DESC= CEC adapter support
GBM_DESC= GBM support (requires a kernel with evdev support)
PLATFORM_DESC= Platform
RPI_DESC= Raspberry Pi support
AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
AVAHI_CMAKE_BOOL= ENABLE_AVAHI
CEC_LIB_DEPENDS= libcec.so:multimedia/libcec
CEC_CMAKE_BOOL= ENABLE_CEC
DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
DBUS_CMAKE_BOOL= ENABLE_DBUS
GBM_BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat
GBM_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="gbm" \
-DGBM_RENDER_SYSTEM:STRING="gl"
GBM_LIB_DEPENDS= libinput.so:x11/libinput \
libxkbcommon.so:x11/libxkbcommon
LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray
LIBBLURAY_CMAKE_BOOL= ENABLE_BLURAY
MYSQL_USES= mysql
MYSQL_CMAKE_BOOL= ENABLE_MYSQLCLIENT
NFS_LIB_DEPENDS= libnfs.so:net/libnfs
NFS_CMAKE_BOOL= ENABLE_NFS
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CMAKE_BOOL= ENABLE_PULSEAUDIO
# For RPI, disable VAAPI in multimedia/ffmpeg too, so that mesa-libs
# is *not* installed via libva in the build environment. Both
# mesa-libs and raspberrypi-userland conflict with each other.
RPI_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="rbpi"
RPI_LIB_DEPENDS= libbrcmEGL.so:misc/raspberrypi-userland
RPI_LIB_DEPENDS_OFF= libdrm.so:graphics/libdrm
RPI_PREVENTS= VAAPI VDPAU
RPI_USE_OFF= GL=egl,gl,glu
SMB_USES= samba:lib
SMB_CMAKE_BOOL= ENABLE_SMBCLIENT
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_CMAKE_BOOL= ENABLE_SNDIO
SSE_CPU_FEATURES= SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
SSE_CMAKE_BOOL= ${SSE_CPU_FEATURES:S/./_/g:S/^/ENABLE_/}
SSE_VARS= CPU_FEATURES+=${SSE_CPU_FEATURES:ts,}
UPNP_CMAKE_BOOL= ENABLE_UPNP
# XXX: Upstream is https://github.com/plutinosoft/Neptune
UPNP_CXXFLAGS= -DNPT_CONFIG_HAVE_ARPA_INET_H \
-DNPT_CONFIG_HAVE_GETADDRINFO \
-DNPT_CONFIG_HAVE_GETIFADDRS \
-DNPT_CONFIG_HAVE_INET_NTOP \
-DNPT_CONFIG_HAVE_INET_PTON \
-DNPT_CONFIG_HAVE_NET_IF_DL_H \
-DNPT_CONFIG_HAVE_SOCKADDR_DL \
-DNPT_CONFIG_HAVE_SOCKADDR_IN_SIN_LEN
VAAPI_CMAKE_BOOL= ENABLE_VAAPI
VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
VDPAU_CMAKE_BOOL= ENABLE_VDPAU
VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
WAYLAND_BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat \
wayland-protocols>=0:graphics/wayland-protocols
WAYLAND_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="wayland" \
-DWAYLAND_RENDER_SYSTEM:STRING="gl"
WAYLAND_LIB_DEPENDS= libinput.so:x11/libinput \
libwayland-client++.so:graphics/waylandpp \
libwayland-client.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon
WEBSERVER_LIB_DEPENDS= libmicrohttpd.so:www/libmicrohttpd
WEBSERVER_CMAKE_BOOL= ENABLE_MICROHTTPD
X11_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="x11"
X11_USE= XORG=x11,xext,xrandr
.include <bsd.port.options.mk>
.if ${SLAVE_PORT} == no
PORTDATA= *
.endif
post-patch:
# Do not try to download dvdnav/dvdread during the build, instead
# we'll manually point the build to the system's libdvd{nav,read}.so
# (see CMAKE_ARGS).
@${REINPLACE_CMD} 's@KODI_DEPENDSBUILD@true@' \
${WRKSRC}/cmake/modules/FindLibDvd.cmake
# Make sure freebsd.xml is in sync with linux.xml since the
# upstream devs do not sync them
@${CP} ${WRKSRC}/system/settings/linux.xml \
${WRKSRC}/system/settings/freebsd.xml
.if ${SLAVE_PORT} == no
post-install:
${INSTALL_MAN} ${WRKSRC}/docs/manpages/kodi.bin.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
@cd ${STAGEDIR}${MAN1PREFIX}/man/man1 && ${LN} -sf kodi.bin.1.gz kodi.1.gz
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/TexturePacker
@${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -name '*.so' | ${XARGS} ${STRIP_CMD}
# Nothing useful here...
@${RM} -r ${STAGEDIR}${DOCSDIR}
# No firewalld on FreeBSD...
@${RM} -r ${STAGEDIR}${PREFIX}/lib/firewalld
.endif
.include <bsd.port.mk>
|