mirror of
https://github.com/videolan/vlc.git
synced 2024-11-24 02:14:26 +08:00
19edba7433
Despite meson officially "supporting" Rust it does support working with Cargo (Rust package manager and build system) so we need to have a bit of custom system for using it. `cargo-output.py` to build and copy the output files (static archive and depfile) to the expected location by meson. And `cargo-rustc-static-libs.py` to get the common linker args for a bar-bone std rust program (ie without dependencies). Those two scripts would potentially be removed if meson and/or cargo became more flexible and/or intelligent.
691 lines
15 KiB
Meson
691 lines
15 KiB
Meson
# General options
|
|
|
|
option('vlc',
|
|
type : 'boolean',
|
|
value : true,
|
|
description : 'Build the VLC executable program.')
|
|
|
|
option('nls',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Native Language Support')
|
|
|
|
option('optimize_memory',
|
|
type : 'boolean',
|
|
value : false,
|
|
description : 'Optimize memory usage over performance')
|
|
|
|
option('binary_version',
|
|
type : 'string',
|
|
value : '',
|
|
description : 'To avoid plugins cache problem between binary version')
|
|
|
|
option('stream_outputs',
|
|
type : 'boolean',
|
|
value : true,
|
|
description : 'Build the VLC stream output modules')
|
|
|
|
option('videolan_manager',
|
|
type : 'boolean',
|
|
value : true,
|
|
description : 'Build the VideoLAN manager')
|
|
|
|
option('addon_manager',
|
|
type : 'boolean',
|
|
value : true,
|
|
description : 'Build the VLC add-on manager modules')
|
|
|
|
option('run_as_root',
|
|
type : 'boolean',
|
|
value : false,
|
|
description : 'Allow running VLC as root')
|
|
|
|
option('branch_protection',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'AArch64 branch protection')
|
|
|
|
option('ssp',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Stack smashing protection')
|
|
|
|
option('extra_checks',
|
|
type : 'boolean',
|
|
value : false,
|
|
description : 'Turn some warnings into compilation error')
|
|
|
|
option('winstore_app',
|
|
type : 'boolean',
|
|
value : false,
|
|
description : 'Build targeted for Windows Store apps')
|
|
|
|
option('rust',
|
|
type : 'feature',
|
|
value : 'disabled',
|
|
description : 'Experimental pure Rust VLC modules')
|
|
|
|
option('extra_rust_flags',
|
|
type : 'array',
|
|
value : [],
|
|
description : 'Extra RUSTFLAGS to be passed to the compiler when compiling Rust VLC modules')
|
|
|
|
option('vendored_rust_deps',
|
|
type : 'string',
|
|
value : 'no',
|
|
description : 'Should use vendored sources: `no`, `yes` or PATH_TO_VENDORED_SOURCES')
|
|
|
|
# TODO: Missing pdb option, this should probably be solved in meson itself
|
|
|
|
# TODO: Missing ssp option
|
|
# TODO: Missing sse option
|
|
# TODO: Missing avx option
|
|
# TODO: Missing neon option
|
|
# TODO: Missing sve option
|
|
# TODO: Missing altivec option
|
|
# TODO: Missing update-check option
|
|
|
|
# Font options
|
|
|
|
option('default_font_path',
|
|
type : 'string',
|
|
value : '',
|
|
description : 'Path to the default font')
|
|
|
|
option('default_monospace_font_path',
|
|
type : 'string',
|
|
value : '',
|
|
description : 'Path to the default monospace font')
|
|
|
|
option('default_font_family',
|
|
type : 'string',
|
|
value : '',
|
|
description : 'Name of the default font family')
|
|
|
|
option('default_monospace_font_family',
|
|
type : 'string',
|
|
value : '',
|
|
description : 'Name of the default monospace font family')
|
|
|
|
# Module options
|
|
|
|
option('vcd_module',
|
|
type : 'boolean',
|
|
value : true,
|
|
description : 'Built-in VCD and CD-DA support')
|
|
|
|
option('css_engine',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'CSS selector engine for WebVTT')
|
|
|
|
# Dependency options
|
|
option('chromecast',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable chromecast support')
|
|
|
|
option('qt',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable Qt support')
|
|
|
|
option('qt_gtk',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable Qt GTK support')
|
|
|
|
option('qt_qml_debug',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Enable/disable Qt QML debugger')
|
|
|
|
option('dbus',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable D-Bus message bus support')
|
|
|
|
option('wayland',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable wayland support')
|
|
|
|
option('x11',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'X11 support')
|
|
|
|
option('xcb',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable X11 support with XCB')
|
|
|
|
option('avcodec',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'Enable/disable avcodec support')
|
|
|
|
option('libva',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'VAAPI GPU decoding support (libVA)')
|
|
|
|
option('omxil',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Enable/disable OpenMAX IL codec')
|
|
|
|
option('avformat',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'Enable/disable avformat support')
|
|
|
|
option('alsa',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable ALSA support')
|
|
|
|
option('pulse',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable Pulseaudio support')
|
|
|
|
option('oss',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Enable/disable OSS support (default-enabled on BSD)')
|
|
|
|
option('ogg',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libogg support')
|
|
|
|
option('dca',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libdca support')
|
|
|
|
option('mpg123',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libmpg123 support')
|
|
|
|
option('mpeg2',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libmpeg2 support')
|
|
|
|
option('schroedinger',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable schroedinger support')
|
|
|
|
option('rsvg',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable librsvg support')
|
|
|
|
option('cairo',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libcairo support')
|
|
|
|
option('freetype',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Font rasterization support with freetype')
|
|
|
|
option('flac',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libflac support')
|
|
|
|
option('opus',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libopus support')
|
|
|
|
option('theoraenc',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable theoraenc support')
|
|
|
|
option('theoradec',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable theoradec support')
|
|
|
|
option('daaladec',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable daaladec support')
|
|
|
|
option('daalaenc',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable daalaenc support')
|
|
|
|
option('vorbis',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable vorbis support')
|
|
|
|
option('vsxu',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable VSXU visualization support')
|
|
|
|
option('x265',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libx265 support')
|
|
|
|
option('x264',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libx264 support')
|
|
|
|
option('x262',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libx262 support')
|
|
|
|
option('fdk-aac',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable fdk-aac support')
|
|
|
|
option('vpx',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'libvpx VP8/VP9 encoder and decoder')
|
|
|
|
option('shine',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable shine support')
|
|
|
|
option('aom',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'libaom AV1 decoder support')
|
|
|
|
option('rav1e',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'rav1e AV1 encoder support')
|
|
|
|
option('dav1d',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'libdav1d AV1 decoder support')
|
|
|
|
option('twolame',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable twolame support')
|
|
|
|
option('mfx',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libmfx support')
|
|
|
|
option('spatialaudio',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libspatialaudio support')
|
|
|
|
option('samplerate',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libsamplerate support')
|
|
|
|
option('soxr',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable soxr support')
|
|
|
|
option('speexdsp',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable speexdsp support')
|
|
|
|
option('caca',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable caca support')
|
|
|
|
option('drm',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libdrm support')
|
|
|
|
option('goom2',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable goom2 visualization plugin')
|
|
|
|
option('avahi',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable zeroconf (avahi) services discovery plugin')
|
|
|
|
option('upnp',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable UPnP plugin (Intel SDK)')
|
|
|
|
option('libxml2',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable XML support')
|
|
|
|
option('medialibrary',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable medialibrary support')
|
|
|
|
option('a52',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable a52 support')
|
|
|
|
option('faad',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable faad support')
|
|
|
|
option('fluidsynth',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable fluidsynth/fluidlite support')
|
|
|
|
option('microdns',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable microdns support')
|
|
|
|
option('gnutls',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable GnuTLS support')
|
|
|
|
option('libsecret',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libsecret support')
|
|
|
|
option('matroska',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable matroska (MKV) support')
|
|
|
|
option('libdvbpsi',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libdvbpsi support')
|
|
|
|
option('aribb24',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable aribb24 support')
|
|
|
|
option('libmodplug',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libmodplug support')
|
|
|
|
option('taglib',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable taglib support')
|
|
|
|
option('libcddb',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Enable/disable libcddb support')
|
|
|
|
option('libass',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'ASS/SSA subtitle support using libass')
|
|
|
|
option('libchromaprint',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Audio fingerprinting support using chromaprint')
|
|
|
|
option('mad',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'MP3 decoding support using libmad')
|
|
|
|
option('png',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'PNG support')
|
|
|
|
option('jpeg',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'JPEG support')
|
|
|
|
option('bpg',
|
|
type : 'feature',
|
|
value : 'disabled',
|
|
description : 'BPG support')
|
|
|
|
option('aribsub',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'ARIB Subtitles support')
|
|
|
|
option('telx',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Teletext decoding support (conflicting with zvbi, default enabled if zvbi is absent)')
|
|
|
|
option('zvbi',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'VBI (inc. Teletext) decoding support with libzvbi')
|
|
|
|
option('kate',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'kate codec')
|
|
|
|
option('tiger',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Tiger rendering library for Kate streams')
|
|
|
|
option('libplacebo',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'libplacebo support')
|
|
|
|
option('gles2',
|
|
type : 'feature',
|
|
value : 'disabled',
|
|
description : 'GLES2 support')
|
|
|
|
option('lua',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'Lua support')
|
|
|
|
option('srt',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'SRT input/output plugin')
|
|
|
|
option('vulkan',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'vulkan output')
|
|
|
|
option('screen',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'screen capture')
|
|
|
|
option('freerdp',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'RDP/Remote Client Desktop support')
|
|
|
|
option('vnc',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'VNC/rfb client support')
|
|
|
|
option('swscale',
|
|
type : 'feature',
|
|
value : 'enabled',
|
|
description : 'libswscale image scaling and conversion')
|
|
|
|
option('postproc',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'libpostproc image post-processing')
|
|
|
|
option('ebur128',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'EBU R 128 standard for loudness normalisation')
|
|
|
|
option('rnnoise',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'Rnnoise denoiser')
|
|
|
|
option('mtp',
|
|
type : 'feature',
|
|
value : 'auto',
|
|
description : 'MTP devices support')
|
|
|
|
option('wasapi',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Use the Windows Audio Session API')
|
|
|
|
option('macosx_avfoundation',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'macOS AVCapture (Video) module')
|
|
|
|
option('dc1394',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'IIDC FireWire input module')
|
|
|
|
option('dv1394',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'DV FireWire input module')
|
|
|
|
option('linsys',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Linux Linear Systems Ltd. SDI and HD-SDI input cards')
|
|
|
|
option('dvdnav',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'DVD with navigation input module (dvdnav)')
|
|
|
|
option('dvdread',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'DVD input module (dvdread)')
|
|
|
|
option('bluray',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Blu-ray input module (libbluray)')
|
|
|
|
option('shout',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Icecast/Shoutcast stream output (libshout)')
|
|
|
|
option('ncurses',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Text-based interface (ncurses)')
|
|
|
|
option('minimal_macosx',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Minimal macOS interface support')
|
|
|
|
option('udev',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Linux udev services discovery')
|
|
|
|
option('rist',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'librist support for access and access_output')
|
|
|
|
option('libgcrypt',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'libgcrypt support')
|
|
|
|
option('fontconfig',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'fontconfig support')
|
|
|
|
option('fribidi',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Fribidi support')
|
|
|
|
option('harfbuzz',
|
|
type: 'feature',
|
|
value: 'auto',
|
|
description: 'Harfbuzz support')
|
|
|
|
# TODO: Missing live555
|
|
# TODO: Missing v4l2
|
|
# TODO: Missing nvdec
|
|
# TODO: Missing decklink
|
|
# TODO: Missing gme
|
|
# TODO: Missing sid
|
|
# TODO: Missing mpc
|
|
# TODO: Missing rpi-omxil
|
|
# TODO: Missing gst-decode
|
|
# TODO: Missing merge-ffmpeg
|
|
# TODO: Missing libva
|
|
# TODO: Missing dxva2
|
|
# TODO: Missing d3d11va
|
|
# TODO: Missing tremor
|
|
# TODO: Missing x26410b
|
|
# TODO: Missing vdpau
|
|
# TODO: Missing directx
|
|
# TODO: Missing kva
|
|
# TODO: Missing mmal
|
|
# TODO: Missing sndio
|
|
# TODO: Missing jack
|
|
# TODO: Missing opensles
|
|
# TODO: Missing kai
|
|
# TODO: Missing qt-qml-cache
|
|
# TODO: Missing qt-qml-debug
|
|
# TODO: Missing skins2
|
|
# TODO: Missing libtar
|
|
# TODO: Missing macosx
|
|
# TODO: Missing sparkle
|
|
# TODO: Missing lirc
|
|
# TODO: Missing projectm
|
|
# TODO: Missing vsxu
|
|
# TODO: Missing kwallet
|
|
# TODO: Missing osx_notifications
|
|
# TODO: Missing dsm
|
|
# TODO: Missing asdcplib
|
|
# TODO: Missing faad2
|
|
# TODO: Missing chromecast
|