libs.py 14.3 KB
Newer Older
1
import re
2 3
from os.path import abspath

4 5
from build.project import Project
from build.zlib import ZlibProject
6
from build.meson import MesonProject
7
from build.cmake import CmakeProject
8 9
from build.autotools import AutotoolsProject
from build.ffmpeg import FfmpegProject
10
from build.openssl import OpenSSLProject
11
from build.boost import BoostProject
12
from build.jack import JackProject
13

14
libmpdclient = MesonProject(
15 16
    'https://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.19.tar.xz',
    '158aad4c2278ab08e76a3f2b0166c99b39fae00ee17231bd225c5a36e977a189',
17 18 19
    'lib/libmpdclient.a',
)

20
libogg = CmakeProject(
21 22
    'http://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.xz',
    'c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe',
23
    'lib/libogg.a',
24
    [
25 26 27
        '-DBUILD_SHARED_LIBS=OFF',
        '-DINSTALL_DOCS=OFF',
        '-DINSTALL_CMAKE_PACKAGE_MODULE=OFF',
28
    ],
29 30 31
)

opus = AutotoolsProject(
32 33
    'https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz',
    '65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d',
34
    'lib/libopus.a',
35 36
    [
        '--disable-shared', '--enable-static',
37 38
        '--disable-doc',
        '--disable-extra-programs',
39
    ],
40 41 42

    # suppress "visibility default" from opus_defines.h
    cppflags='-DOPUS_EXPORT=',
43 44
)

45 46 47 48 49 50 51 52 53 54 55 56
flac = AutotoolsProject(
    'http://downloads.xiph.org/releases/flac/flac-1.3.3.tar.xz',
    '213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748',
    'lib/libFLAC.a',
    [
        '--disable-shared', '--enable-static',
        '--disable-xmms-plugin', '--disable-cpplibs',
        '--disable-doxygen-docs',
    ],
    subdirs=['include', 'src/libFLAC'],
)

57
zlib = ZlibProject(
martinarielhartmann's avatar
martinarielhartmann committed
58 59
    'http://zlib.net/zlib-1.2.11.tar.xz',
    '4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066',
60 61 62 63 64 65 66
    'lib/libz.a',
)

libid3tag = AutotoolsProject(
    'ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz',
    'e5808ad997ba32c498803822078748c3',
    'lib/libid3tag.a',
67 68
    [
        '--disable-shared', '--enable-static',
69 70 71

        # without this, libid3tag's configure.ac ignores -O* and -f*
        '--disable-debugging',
72
    ],
73
    autogen=True,
74 75 76 77 78

    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),
    }
79 80 81 82 83 84
)

libmad = AutotoolsProject(
    'ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz',
    '1be543bc30c56fb6bea1d7bf6a64e66c',
    'lib/libmad.a',
85 86
    [
        '--disable-shared', '--enable-static',
87 88 89

        # without this, libmad's configure.ac ignores -O* and -f*
        '--disable-debugging',
90
    ],
91 92 93
    autogen=True,
)

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

105 106 107 108 109 110 111 112 113
libmodplug = AutotoolsProject(
    'https://downloads.sourceforge.net/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz',
    '457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de',
    'lib/libmodplug.a',
    [
        '--disable-shared', '--enable-static',
    ],
)

114
libopenmpt = AutotoolsProject(
115 116
    'https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-0.5.12+release.autotools.tar.gz',
    '892aea7a599b5d21842bebf463b5aafdad5711be7008dd84401920c6234820af',
117 118
    'lib/libopenmpt.a',
    [
119
        '--disable-shared', '--enable-static',
120
        '--disable-openmpt123',
121 122
        '--without-mpg123', '--without-ogg', '--without-vorbis', '--without-vorbisfile',
        '--without-portaudio', '--without-portaudiocpp', '--without-sndfile',
123
    ],
124
    base='libopenmpt-0.5.12+release.autotools',
125 126
)

127
wildmidi = CmakeProject(
128 129
    'https://codeload.github.com/Mindwerks/wildmidi/tar.gz/wildmidi-0.4.4',
    '6f267c8d331e9859906837e2c197093fddec31829d2ebf7b958cf6b7ae935430',
130 131 132 133 134 135
    'lib/libWildMidi.a',
    [
        '-DBUILD_SHARED_LIBS=OFF',
        '-DWANT_PLAYER=OFF',
        '-DWANT_STATIC=ON',
    ],
136
    base='wildmidi-wildmidi-0.4.4',
137
    name='wildmidi',
138
    version='0.4.4',
139 140
)

141 142 143 144 145 146 147 148 149 150 151 152
gme = CmakeProject(
    'https://bitbucket.org/mpyne/game-music-emu/downloads/game-music-emu-0.6.3.tar.xz',
    'aba34e53ef0ec6a34b58b84e28bf8cfbccee6585cebca25333604c35db3e051d',
    'lib/libgme.a',
    [
        '-DBUILD_SHARED_LIBS=OFF',
        '-DENABLE_UBSAN=OFF',
        '-DZLIB_INCLUDE_DIR=OFF',
        '-DSDL2_DIR=OFF',
    ],
)

153
ffmpeg = FfmpegProject(
154 155
    'http://ffmpeg.org/releases/ffmpeg-4.4.1.tar.xz',
    'eadbad9e9ab30b25f5520fbfde99fae4a92a1ae3c0257a8d68569a4651e30e02',
156 157 158 159 160 161 162 163 164 165 166 167 168
    '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',
169 170 171
        '--disable-lzo',
        '--disable-faan',
        '--disable-pixelutils',
172 173
        '--disable-network',
        '--disable-encoders',
174
        '--disable-muxers',
175
        '--disable-protocols',
176
        '--disable-devices',
177
        '--disable-filters',
178
        '--disable-v4l2_m2m',
179

180 181 182 183 184
        '--disable-parser=bmp',
        '--disable-parser=cavsvideo',
        '--disable-parser=dvbsub',
        '--disable-parser=dvdsub',
        '--disable-parser=dvd_nav',
185 186 187 188 189 190 191 192 193
        '--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',
194 195
        '--disable-parser=mpeg4video',
        '--disable-parser=mpegvideo',
196
        '--disable-parser=opus',
197
        '--disable-parser=vc1',
198 199 200
        '--disable-parser=vp3',
        '--disable-parser=vp8',
        '--disable-parser=vp9',
201 202
        '--disable-parser=png',
        '--disable-parser=pnm',
203 204
        '--disable-parser=xma',

205 206 207 208 209 210 211 212
        '--disable-demuxer=aqtitle',
        '--disable-demuxer=ass',
        '--disable-demuxer=bethsoftvid',
        '--disable-demuxer=bink',
        '--disable-demuxer=cavsvideo',
        '--disable-demuxer=cdxl',
        '--disable-demuxer=dvbsub',
        '--disable-demuxer=dvbtxt',
213 214 215
        '--disable-demuxer=h261',
        '--disable-demuxer=h263',
        '--disable-demuxer=h264',
216
        '--disable-demuxer=ico',
217
        '--disable-demuxer=image2',
218 219 220 221 222
        '--disable-demuxer=jacosub',
        '--disable-demuxer=lrc',
        '--disable-demuxer=microdvd',
        '--disable-demuxer=mjpeg',
        '--disable-demuxer=mjpeg_2000',
223 224
        '--disable-demuxer=mpegps',
        '--disable-demuxer=mpegvideo',
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241
        '--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',
242 243 244 245 246 247 248 249 250 251 252 253 254

        # we don't need these decoders, because we have the dedicated
        # libraries
        '--disable-decoder=flac',
        '--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',
255 256 257
        '--disable-decoder=binkaudio_dct',
        '--disable-decoder=binkaudio_rdft',
        '--disable-decoder=bmv_audio',
258 259 260 261
        '--disable-decoder=dsicinaudio',
        '--disable-decoder=dvaudio',
        '--disable-decoder=metasound',
        '--disable-decoder=paf_audio',
262 263
        '--disable-decoder=ra_144',
        '--disable-decoder=ra_288',
264 265 266 267 268
        '--disable-decoder=ralf',
        '--disable-decoder=qdm2',
        '--disable-decoder=qdmc',

        # disable lots of image and video codecs
269 270 271 272 273 274 275 276
        '--disable-decoder=ass',
        '--disable-decoder=asv1',
        '--disable-decoder=asv2',
        '--disable-decoder=apng',
        '--disable-decoder=avrn',
        '--disable-decoder=avrp',
        '--disable-decoder=bethsoftvid',
        '--disable-decoder=bink',
277
        '--disable-decoder=bmp',
278 279 280 281
        '--disable-decoder=bmv_video',
        '--disable-decoder=cavs',
        '--disable-decoder=ccaption',
        '--disable-decoder=cdgraphics',
282
        '--disable-decoder=clearvideo',
283
        '--disable-decoder=dirac',
284
        '--disable-decoder=dsicinvideo',
285 286
        '--disable-decoder=dvbsub',
        '--disable-decoder=dvdsub',
287
        '--disable-decoder=dvvideo',
288
        '--disable-decoder=exr',
289 290 291 292 293
        '--disable-decoder=ffv1',
        '--disable-decoder=ffvhuff',
        '--disable-decoder=ffwavesynth',
        '--disable-decoder=flic',
        '--disable-decoder=flv',
294
        '--disable-decoder=fraps',
295 296 297 298 299 300
        '--disable-decoder=gif',
        '--disable-decoder=h261',
        '--disable-decoder=h263',
        '--disable-decoder=h263i',
        '--disable-decoder=h263p',
        '--disable-decoder=h264',
301
        '--disable-decoder=hevc',
302 303 304
        '--disable-decoder=hnm4_video',
        '--disable-decoder=hq_hqa',
        '--disable-decoder=hqx',
305
        '--disable-decoder=idcin',
306 307 308 309 310 311
        '--disable-decoder=iff_ilbm',
        '--disable-decoder=indeo2',
        '--disable-decoder=indeo3',
        '--disable-decoder=indeo4',
        '--disable-decoder=indeo5',
        '--disable-decoder=interplay_video',
312
        '--disable-decoder=jacosub',
313 314 315
        '--disable-decoder=jpeg2000',
        '--disable-decoder=jpegls',
        '--disable-decoder=microdvd',
316
        '--disable-decoder=mimic',
317 318
        '--disable-decoder=mjpeg',
        '--disable-decoder=mmvideo',
319
        '--disable-decoder=mpl2',
320 321 322 323 324
        '--disable-decoder=motionpixels',
        '--disable-decoder=mpeg1video',
        '--disable-decoder=mpeg2video',
        '--disable-decoder=mpeg4',
        '--disable-decoder=mpegvideo',
325
        '--disable-decoder=mscc',
326 327 328 329
        '--disable-decoder=msmpeg4_crystalhd',
        '--disable-decoder=msmpeg4v1',
        '--disable-decoder=msmpeg4v2',
        '--disable-decoder=msmpeg4v3',
330 331
        '--disable-decoder=msvideo1',
        '--disable-decoder=mszh',
332 333 334 335
        '--disable-decoder=mvc1',
        '--disable-decoder=mvc2',
        '--disable-decoder=on2avc',
        '--disable-decoder=paf_video',
336
        '--disable-decoder=png',
337 338 339
        '--disable-decoder=qdraw',
        '--disable-decoder=qpeg',
        '--disable-decoder=rawvideo',
340 341 342 343
        '--disable-decoder=realtext',
        '--disable-decoder=roq',
        '--disable-decoder=roq_dpcm',
        '--disable-decoder=rscc',
344 345 346 347
        '--disable-decoder=rv10',
        '--disable-decoder=rv20',
        '--disable-decoder=rv30',
        '--disable-decoder=rv40',
348
        '--disable-decoder=sami',
349
        '--disable-decoder=sheervideo',
350 351 352 353 354 355 356 357
        '--disable-decoder=snow',
        '--disable-decoder=srt',
        '--disable-decoder=stl',
        '--disable-decoder=subrip',
        '--disable-decoder=subviewer',
        '--disable-decoder=subviewer1',
        '--disable-decoder=svq1',
        '--disable-decoder=svq3',
358
        '--disable-decoder=tiff',
359
        '--disable-decoder=tiertexseqvideo',
360 361 362 363 364 365 366 367 368 369 370 371 372
        '--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',
373
        '--disable-decoder=vqa',
374
        '--disable-decoder=webvtt',
375 376 377 378
        '--disable-decoder=wmv1',
        '--disable-decoder=wmv2',
        '--disable-decoder=wmv3',
        '--disable-decoder=yuv4',
379 380 381
    ],
)

382
openssl = OpenSSLProject(
383 384
    'https://www.openssl.org/source/openssl-3.0.0.tar.gz',
    '59eedfcb46c25214c9bd37ed6078297b4df01d012267fe9e9eee31f61bc70536',
385 386 387
    'include/openssl/ossl_typ.h',
)

388
curl = CmakeProject(
389 390
    'https://curl.se/download/curl-7.79.1.tar.xz',
    '0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689',
391 392
    'lib/libcurl.a',
    [
393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418
        '-DBUILD_CURL_EXE=OFF',
        '-DBUILD_SHARED_LIBS=OFF',
        '-DCURL_DISABLE_VERBOSE_STRINGS=ON',
        '-DCURL_DISABLE_LDAP=ON',
        '-DCURL_DISABLE_TELNET=ON',
        '-DCURL_DISABLE_DICT=ON',
        '-DCURL_DISABLE_FILE=ON',
        '-DCURL_DISABLE_FTP=ON',
        '-DCURL_DISABLE_TFTP=ON',
        '-DCURL_DISABLE_LDAPS=ON',
        '-DCURL_DISABLE_RTSP=ON',
        '-DCURL_DISABLE_PROXY=ON',
        '-DCURL_DISABLE_POP3=ON',
        '-DCURL_DISABLE_IMAP=ON',
        '-DCURL_DISABLE_SMTP=ON',
        '-DCURL_DISABLE_GOPHER=ON',
        '-DCURL_DISABLE_COOKIES=ON',
        '-DCURL_DISABLE_CRYPTO_AUTH=ON',
        '-DCURL_DISABLE_ALTSVC=ON',
        '-DCMAKE_USE_LIBSSH2=OFF',
        '-DCURL_WINDOWS_SSPI=OFF',
        '-DCURL_DISABLE_NTLM=ON',
        '-DBUILD_TESTING=OFF',
    ],
    windows_configure_args=[
        '-DCMAKE_USE_SCHANNEL=ON',
419
    ],
420
    patches='src/lib/curl/patches',
421 422
)

423
libnfs = AutotoolsProject(
424 425
    'https://github.com/sahlberg/libnfs/archive/libnfs-4.0.0.tar.gz',
    '6ee77e9fe220e2d3e3b1f53cfea04fb319828cc7dbb97dd9df09e46e901d797d',
426 427 428 429 430 431 432
    'lib/libnfs.a',
    [
        '--disable-shared', '--enable-static',
        '--disable-debug',

        # work around -Wtautological-compare
        '--disable-werror',
433 434

        '--disable-utils', '--disable-examples',
435
    ],
436
    base='libnfs-libnfs-4.0.0',
437
    patches='src/lib/nfs/patches',
438 439 440
    autoreconf=True,
)

441 442 443 444 445 446
jack = JackProject(
    'https://github.com/jackaudio/jack2/archive/v1.9.17.tar.gz',
    '38f674bbc57852a8eb3d9faa1f96a0912d26f7d5df14c11005ad499c8ae352f2',
    'lib/pkgconfig/jack.pc',
)

447
boost = BoostProject(
448 449
    'https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2',
    'fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854',
450 451
    'include/boost/version.hpp',
)