libs.py 12 KB
Newer Older
1
import re
2 3 4 5 6 7 8
from build.project import Project
from build.zlib import ZlibProject
from build.autotools import AutotoolsProject
from build.ffmpeg import FfmpegProject
from build.boost import BoostProject

libogg = AutotoolsProject(
9 10
    'http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.xz',
    '4f3fc6178a533d392064f14776b23c397ed4b9f48f5de297aba73b643f955c08',
11
    'lib/libogg.a',
12 13 14
    [
        '--disable-shared', '--enable-static',
    ],
15 16 17 18 19 20
)

libvorbis = AutotoolsProject(
    'http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz',
    '28cb28097c07a735d6af56e598e1c90f',
    'lib/libvorbis.a',
21 22 23
    [
        '--disable-shared', '--enable-static',
    ],
24 25 26
)

opus = AutotoolsProject(
27 28
    'https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz',
    'cfafd339ccd9c5ef8d6ab15d7e1a412c054bf4cb4ecbbbcc78c12ef2def70732',
29
    'lib/libopus.a',
30 31
    [
        '--disable-shared', '--enable-static',
32 33
        '--disable-doc',
        '--disable-extra-programs',
34
    ],
35 36 37

    # suppress "visibility default" from opus_defines.h
    cppflags='-DOPUS_EXPORT=',
38 39 40
)

flac = AutotoolsProject(
41 42
    'http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz',
    '91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f',
43 44 45 46
    'lib/libFLAC.a',
    [
        '--disable-shared', '--enable-static',
        '--disable-xmms-plugin', '--disable-cpplibs',
47
        '--disable-doxygen-docs',
48
    ],
49
    subdirs=['include', 'src/libFLAC'],
50 51 52
)

zlib = ZlibProject(
martinarielhartmann's avatar
martinarielhartmann committed
53 54
    'http://zlib.net/zlib-1.2.11.tar.xz',
    '4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066',
55 56 57 58 59 60 61
    'lib/libz.a',
)

libid3tag = AutotoolsProject(
    'ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz',
    'e5808ad997ba32c498803822078748c3',
    'lib/libid3tag.a',
62 63
    [
        '--disable-shared', '--enable-static',
64 65 66

        # without this, libid3tag's configure.ac ignores -O* and -f*
        '--disable-debugging',
67
    ],
68
    autogen=True,
69 70 71 72 73

    edits={
        # fix bug in libid3tag's configure.ac which discards all but the last optimization flag
        'configure.ac': lambda data: re.sub(r'optimize="\$1"', r'optimize="$optimize $1"', data, count=1),
    }
74 75 76 77 78 79
)

libmad = AutotoolsProject(
    'ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz',
    '1be543bc30c56fb6bea1d7bf6a64e66c',
    'lib/libmad.a',
80 81
    [
        '--disable-shared', '--enable-static',
82 83 84

        # without this, libmad's configure.ac ignores -O* and -f*
        '--disable-debugging',
85
    ],
86 87 88
    autogen=True,
)

89
liblame = AutotoolsProject(
90 91
    'http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz',
    'ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e',
92 93 94 95 96 97 98 99
    'lib/libmp3lame.a',
    [
        '--disable-shared', '--enable-static',
        '--disable-gtktest', '--disable-analyzer-hooks',
        '--disable-decoder', '--disable-frontend',
    ],
)

100
ffmpeg = FfmpegProject(
101 102
    'http://ffmpeg.org/releases/ffmpeg-3.4.1.tar.xz',
    '5a77278a63741efa74e26bf197b9bb09ac6381b9757391b922407210f0f991c0',
103 104 105 106 107 108 109 110 111 112 113 114 115
    'lib/libavcodec.a',
    [
        '--disable-shared', '--enable-static',
        '--enable-gpl',
        '--enable-small',
        '--disable-pthreads',
        '--disable-programs',
        '--disable-doc',
        '--disable-avdevice',
        '--disable-swresample',
        '--disable-swscale',
        '--disable-postproc',
        '--disable-avfilter',
116 117 118
        '--disable-lzo',
        '--disable-faan',
        '--disable-pixelutils',
119 120
        '--disable-network',
        '--disable-encoders',
121
        '--disable-muxers',
122
        '--disable-protocols',
123
        '--disable-devices',
124
        '--disable-filters',
125
        '--disable-filters',
126
        '--disable-v4l2_m2m',
127

128 129 130 131 132
        '--disable-parser=bmp',
        '--disable-parser=cavsvideo',
        '--disable-parser=dvbsub',
        '--disable-parser=dvdsub',
        '--disable-parser=dvd_nav',
133 134 135 136 137 138 139 140 141
        '--disable-parser=flac',
        '--disable-parser=g729',
        '--disable-parser=gsm',
        '--disable-parser=h261',
        '--disable-parser=h263',
        '--disable-parser=h264',
        '--disable-parser=hevc',
        '--disable-parser=mjpeg',
        '--disable-parser=mlp',
142 143 144
        '--disable-parser=mpeg4video',
        '--disable-parser=mpegaudio',
        '--disable-parser=mpegvideo',
145
        '--disable-parser=opus',
146
        '--disable-parser=vc1',
147 148 149
        '--disable-parser=vp3',
        '--disable-parser=vp8',
        '--disable-parser=vp9',
150 151
        '--disable-parser=png',
        '--disable-parser=pnm',
152 153
        '--disable-parser=xma',

154 155 156 157 158 159 160 161
        '--disable-demuxer=aqtitle',
        '--disable-demuxer=ass',
        '--disable-demuxer=bethsoftvid',
        '--disable-demuxer=bink',
        '--disable-demuxer=cavsvideo',
        '--disable-demuxer=cdxl',
        '--disable-demuxer=dvbsub',
        '--disable-demuxer=dvbtxt',
162 163 164
        '--disable-demuxer=h261',
        '--disable-demuxer=h263',
        '--disable-demuxer=h264',
165
        '--disable-demuxer=ico',
166
        '--disable-demuxer=image2',
167 168 169 170 171
        '--disable-demuxer=jacosub',
        '--disable-demuxer=lrc',
        '--disable-demuxer=microdvd',
        '--disable-demuxer=mjpeg',
        '--disable-demuxer=mjpeg_2000',
172 173
        '--disable-demuxer=mpegps',
        '--disable-demuxer=mpegvideo',
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
        '--disable-demuxer=mpl2',
        '--disable-demuxer=mpsub',
        '--disable-demuxer=pjs',
        '--disable-demuxer=rawvideo',
        '--disable-demuxer=realtext',
        '--disable-demuxer=sami',
        '--disable-demuxer=scc',
        '--disable-demuxer=srt',
        '--disable-demuxer=stl',
        '--disable-demuxer=subviewer',
        '--disable-demuxer=subviewer1',
        '--disable-demuxer=swf',
        '--disable-demuxer=tedcaptions',
        '--disable-demuxer=vobsub',
        '--disable-demuxer=vplayer',
        '--disable-demuxer=webvtt',
        '--disable-demuxer=yuv4mpegpipe',
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

        # we don't need these decoders, because we have the dedicated
        # libraries
        '--disable-decoder=flac',
        '--disable-decoder=mp1',
        '--disable-decoder=mp1float',
        '--disable-decoder=mp2',
        '--disable-decoder=mp2float',
        '--disable-decoder=mp3',
        '--disable-decoder=mp3adu',
        '--disable-decoder=mp3adufloat',
        '--disable-decoder=mp3float',
        '--disable-decoder=mp3on4',
        '--disable-decoder=mp3on4float',
        '--disable-decoder=opus',
        '--disable-decoder=vorbis',

        # audio codecs nobody uses
        '--disable-decoder=atrac1',
        '--disable-decoder=atrac3',
        '--disable-decoder=atrac3al',
        '--disable-decoder=atrac3p',
        '--disable-decoder=atrac3pal',
214 215 216
        '--disable-decoder=binkaudio_dct',
        '--disable-decoder=binkaudio_rdft',
        '--disable-decoder=bmv_audio',
217 218 219 220
        '--disable-decoder=dsicinaudio',
        '--disable-decoder=dvaudio',
        '--disable-decoder=metasound',
        '--disable-decoder=paf_audio',
221 222
        '--disable-decoder=ra_144',
        '--disable-decoder=ra_288',
223 224 225 226 227
        '--disable-decoder=ralf',
        '--disable-decoder=qdm2',
        '--disable-decoder=qdmc',

        # disable lots of image and video codecs
228 229 230 231 232 233 234 235
        '--disable-decoder=ass',
        '--disable-decoder=asv1',
        '--disable-decoder=asv2',
        '--disable-decoder=apng',
        '--disable-decoder=avrn',
        '--disable-decoder=avrp',
        '--disable-decoder=bethsoftvid',
        '--disable-decoder=bink',
236
        '--disable-decoder=bmp',
237 238 239 240
        '--disable-decoder=bmv_video',
        '--disable-decoder=cavs',
        '--disable-decoder=ccaption',
        '--disable-decoder=cdgraphics',
241
        '--disable-decoder=clearvideo',
242
        '--disable-decoder=dirac',
243
        '--disable-decoder=dsicinvideo',
244 245
        '--disable-decoder=dvbsub',
        '--disable-decoder=dvdsub',
246
        '--disable-decoder=dvvideo',
247
        '--disable-decoder=exr',
248 249 250 251 252
        '--disable-decoder=ffv1',
        '--disable-decoder=ffvhuff',
        '--disable-decoder=ffwavesynth',
        '--disable-decoder=flic',
        '--disable-decoder=flv',
253
        '--disable-decoder=fraps',
254 255 256 257 258 259
        '--disable-decoder=gif',
        '--disable-decoder=h261',
        '--disable-decoder=h263',
        '--disable-decoder=h263i',
        '--disable-decoder=h263p',
        '--disable-decoder=h264',
260
        '--disable-decoder=hevc',
261 262 263
        '--disable-decoder=hnm4_video',
        '--disable-decoder=hq_hqa',
        '--disable-decoder=hqx',
264
        '--disable-decoder=idcin',
265 266 267 268 269 270
        '--disable-decoder=iff_ilbm',
        '--disable-decoder=indeo2',
        '--disable-decoder=indeo3',
        '--disable-decoder=indeo4',
        '--disable-decoder=indeo5',
        '--disable-decoder=interplay_video',
271
        '--disable-decoder=jacosub',
272 273 274
        '--disable-decoder=jpeg2000',
        '--disable-decoder=jpegls',
        '--disable-decoder=microdvd',
275
        '--disable-decoder=mimic',
276 277
        '--disable-decoder=mjpeg',
        '--disable-decoder=mmvideo',
278
        '--disable-decoder=mpl2',
279 280 281 282 283
        '--disable-decoder=motionpixels',
        '--disable-decoder=mpeg1video',
        '--disable-decoder=mpeg2video',
        '--disable-decoder=mpeg4',
        '--disable-decoder=mpegvideo',
284
        '--disable-decoder=mscc',
285 286 287 288
        '--disable-decoder=msmpeg4_crystalhd',
        '--disable-decoder=msmpeg4v1',
        '--disable-decoder=msmpeg4v2',
        '--disable-decoder=msmpeg4v3',
289 290
        '--disable-decoder=msvideo1',
        '--disable-decoder=mszh',
291 292 293 294
        '--disable-decoder=mvc1',
        '--disable-decoder=mvc2',
        '--disable-decoder=on2avc',
        '--disable-decoder=paf_video',
295
        '--disable-decoder=png',
296 297 298
        '--disable-decoder=qdraw',
        '--disable-decoder=qpeg',
        '--disable-decoder=rawvideo',
299 300 301 302
        '--disable-decoder=realtext',
        '--disable-decoder=roq',
        '--disable-decoder=roq_dpcm',
        '--disable-decoder=rscc',
303 304 305 306
        '--disable-decoder=rv10',
        '--disable-decoder=rv20',
        '--disable-decoder=rv30',
        '--disable-decoder=rv40',
307
        '--disable-decoder=sami',
308
        '--disable-decoder=sheervideo',
309 310 311 312 313 314 315 316
        '--disable-decoder=snow',
        '--disable-decoder=srt',
        '--disable-decoder=stl',
        '--disable-decoder=subrip',
        '--disable-decoder=subviewer',
        '--disable-decoder=subviewer1',
        '--disable-decoder=svq1',
        '--disable-decoder=svq3',
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
        '--disable-decoder=tiff',
        '--disable-decoder=mottiertexseqvideo',
        '--disable-decoder=truemotion1',
        '--disable-decoder=truemotion2',
        '--disable-decoder=truemotion2rt',
        '--disable-decoder=twinvq',
        '--disable-decoder=utvideo',
        '--disable-decoder=vc1',
        '--disable-decoder=vmdvideo',
        '--disable-decoder=vp3',
        '--disable-decoder=vp5',
        '--disable-decoder=vp6',
        '--disable-decoder=vp7',
        '--disable-decoder=vp8',
        '--disable-decoder=vp9',
332
        '--disable-decoder=vqa',
333
        '--disable-decoder=webvtt',
334 335 336 337
        '--disable-decoder=wmv1',
        '--disable-decoder=wmv2',
        '--disable-decoder=wmv3',
        '--disable-decoder=yuv4',
338 339 340 341
    ],
)

curl = AutotoolsProject(
342 343
    'http://curl.haxx.se/download/curl-7.58.0.tar.xz',
    '6a813875243609eb75f37fa72044e4ad618b55ec15a4eafdac2df6a7e800e3e3',
344 345 346 347 348 349 350 351 352 353
    'lib/libcurl.a',
    [
        '--disable-shared', '--enable-static',
        '--disable-debug',
        '--enable-http',
        '--enable-ipv6',
        '--disable-ftp', '--disable-file',
        '--disable-ldap', '--disable-ldaps',
        '--disable-rtsp', '--disable-proxy', '--disable-dict', '--disable-telnet',
        '--disable-tftp', '--disable-pop3', '--disable-imap', '--disable-smtp',
354
        '--disable-smb',
355 356 357 358 359 360 361 362 363
        '--disable-gopher',
        '--disable-manual',
        '--disable-threaded-resolver', '--disable-verbose', '--disable-sspi',
        '--disable-crypto-auth', '--disable-ntlm-wb', '--disable-tls-srp', '--disable-cookies',
        '--without-ssl', '--without-gnutls', '--without-nss', '--without-libssh2',
    ],
)

boost = BoostProject(
364 365
    'http://downloads.sourceforge.net/project/boost/boost/1.66.0/boost_1_66_0.tar.bz2',
    '5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9',
366 367
    'include/boost/version.hpp',
)