mirror of https://github.com/mpv-player/mpv
2.7 KiB
2.7 KiB
Differences Between Meson and Waf
mpv currently supports two different build systems: waf and meson. In general,
option names between both build systems are mostly the same. In most cases,
--enable-foo
in waf becomes -Dfoo=enabled
in meson. Likewise,
--disable-foo
becomes -Dfoo=disabled
. For the rest of this document,
Waf options will be noted as --foo
while meson options are noted as
foo
.
Universal Options
Meson has several universal options that you get for free. In some cases, these overlapped with custom waf options.
--libmpv-static
and--libmpv-shared
were combined into one option:libmpv
. Usedefault_library
to control if you want to build static or shared libraries.- Waf had a boolean
--optimize
option. In meson, this is a universal option,optimization
, which can take several different values. In mpv's meson build, the default is2
. - Instead of
--debug-build
, meson simply calls itdebug
. It is enabled by default.
Changed Options
- The legacy lua names (
52
,52deb
, etc.) for--lua
are not supported in the meson build. Instead, pass the generic pkg-config values such aslua52
,lua5.2
, etc. --lgpl
was changed togpl
. Ifgpl
is false, the build is LGPL2.1+.--tests
was removed since unit tests now explictly require meson to run
Boolean Options
The following options are all booleans that accept true
or false
instead of enabled
or disabled
.
build-date
cplayer
gpl
libmpv
ta-leak-report
tests
Removed Options
There are options removed with no equivalent in the meson build.
--asm
was removed since it doesn't do anything.--android
was removed since meson knows if the machine is android.--clang-compilation-database
was removed. Meson can do this on its own by invoking ninja (ninja -t compdb
).--tvos
was removed since it doesn't do anything.--static-build
was removed. Usedefault_library
.--swift-static
was removed. The swift library always dynamically links.
Renamed Options
These are some other options that were renamed.
--gl-wayland
was renamed toegl-wayland
.--swift
was renamed toswift-build
.
Other
- The meson build supports passing the
SOURCE_DATE_EPOCH
environment variable during the compilation step for those who want reproducibility without having to disable the build date. - The
Configuration
line shown bympv -v
does not show everything passed on cli since meson does not have any easy way to access a user's argv. Instead, it simply shows whatever the value ofprefix
is regardless if it was specified or not.