| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
It shouldn't be added unconditionally and with all the fragile checks if
it is supported it is way better to handle it in the meson itself.
See also:
https://github.com/mpv-player/mpv/pull/12346
Fixes:
https://github.com/mpv-player/mpv-build/issues/215
https://github.com/haasn/libplacebo/issues/198
|
|
|
|
|
|
|
|
|
| |
When building libmpv against the static ffmpeg libraries, we have to add
the -Wl,-Bsymbolic linker flags. The problem is that these are only
valid for ELF which doesn't apply to all OSes (namely, macOS). Solve
this by simply checking the output from uname and seeing if it matches a
known ELF platform like linux, bsd, or solaris (who uses this?).
Fixes #216.
|
|
|
|
|
| |
e5d2640cb3a25c060a63bb57e8ecdcd2afcd9588 removed waf support so this
flag is no longer valid.
|
|
|
|
|
|
| |
No longer needed by mpv.
https://github.com/mpv-player/mpv/commit/200992f90c49fdc2d5605cf79ffaa5247fd62e3e
|
|
|
|
|
| |
Waf was deprecated in mpv 0.36.0, and will be removed in 0.37.0, so
remove waf support in mpv-build as well.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The options passed through mpv-config have different syntax. --confdir
is no longer necessary.
Rename $WAFFLAGS to $MESONFLAGS.
Use the mpv-install script with appropriate --destdir.
Remove the unused DOCS and TOOLS variables.
|
|
|
|
|
|
| |
In light of 3ec52b9c80bc900a5c2aa409aaa6cad515d5ea5f. A user on debian
bullesye would still need to get meson from backports for libplacebo and
mpv.
|
|
|
|
|
|
|
|
|
|
| |
According to ffmpeg's own documentation* we have to add these linker
flags to libmpv when building it against the static library. waf doesn't
need this for mysterious, unknown reasons (the linker flags there are a
bit different) but passing this works fine on meson. Just add an extra
check to the mpv-config script to enable this if needed. Fixes #208.
*: https://ffmpeg.org/platform.html#Advanced-linking-configuration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using meson to build mpv with prefer_static=true would try to link
everything statically including things provided by the system. For
example, if both shared and static versions of libarchive are were
available, it would choose the static version. This would work until it
tried to actulaly link the mpv binary which would additionally require
static versions of -lacl, lzlib, etc. These build dependencies can be
avoided if it instead links to shared libarchive.
To avoid this, don't use -Dprefer_static=true. It should already be
preferring the specifically statically built libs in build_libs because
they are added first in the pkg-config path.
Of course, we still run into the same -lstdc++ issue that we saw with
waf, so that hack needs to be made general to both build systems.
|
|
|
|
|
|
|
|
| |
Waf was officially deprecated in mpv, so we should make these scripts
use meson by default instead. Waf support is still there for now via
the BUILDSYSTEM=waf environment variable (meson no longer requires any
special variable to use). The README is adjusted a little to reflect
this.
|
|
|
|
|
|
|
|
| |
The old usage of "meson build" for configuration was deprecated in meson
0.64*. You're meant to use "meson setup build" instead so just replace
the couple of instances of "meson build" that we have in the scripts.
https://github.com/mesonbuild/meson/commit/3c7ab542c0c4770241eae149b0d4cd8de329aee0
|
|
|
|
|
|
| |
it seems ffmpeg no longer supports nasm, or at least isn't
autodetecting it and configure was explicitly warning about
nasm not being found.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Include libplacebo to add support `vo=gpu-next` in mpv,
as the OS-provided libplacebo may not be recent enough.
Explicitly link mpv and ffmpeg against stdc++ in case libplacebo was built with glslang,
which does not have pkg-config files.
Adjust the update script to also checkout git submodules as well,
which is needed for libplacebo.
|
| |
|
| |
|
|
|
|
| |
This is now needed for x11.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ffmpeg doesn't always autodetect/enable tls/ssl libs, so mpv-build
does that if the user didn't specify one.
However, previously it had two issues:
1. It checked for 3 options (openssl/gnutls/mbedtls) but ffmpeg
supports 6. So for instance if --enable-schannel was specified
by the user, then mpv still tried to add another one, which
resulted in a conflict which the user couldn't override easily
(needs the user options: --disable-openssl --disable-gnutls).
2. It still tried to auto-enable even if the user disabled some of
them. Not a real problem (because the user option comes after the
mpv-build auto-option), but not very nice either.
Now if any of the 6 ssl/tls names exist at the user option
(enabled/disabled/whatever) then autodetection is skipped.
|
|
|
|
|
|
|
|
|
|
|
| |
- Implement our own echo function. echo is non standard and its
behavior varies, where on some systems it can be affected by -n
or -e etc. Our implementation is unaffected by any switch/options.
- Invoke grep only once, and check one of the three strings at once
as an ERE (-E).
- Add a user-message when skipping auto-detection
|
|
|
|
|
|
|
|
|
| |
This is a regression from 3de25ed , where previously ffmpeg_options
content was added to $OPTION before the checks, but since 3de25ed it
stays as "$@", but the ssl/tls still only checked $OPTIONS.
Now it checks both $OPTIONS and "$@", which takes ffmpeg_options into
account as well.
|
|
|
|
|
|
| |
There was an old rm -f line for removing things created by mpv's old,
pre-waf build system (nearly 10 years ago) in mpv-clean. Remove this
since it's completely pointless now and just confusing.
|
|
|
|
|
|
|
|
|
|
| |
This adds an optional environment variable, BUILDSYSTEM, that can be
passed to the build scripts to use mpv's meson build instead of waf,
the default. BUILDSYSTEM=meson needs to be set and any configure options
passed must use meson's syntax instead of waf. The catch with meson
support is that it requires the new prefer_static option for statically
linking libass and ffmpeg. This option is not currrently in a release
and will land in meson 0.63.
|
| |
|
|
|
|
|
|
|
|
| |
Some implementations of "echo" can interpret the value as option to
echo itself if it begins with "-", while "printf" avoid this issue.
Also, add a section which explains how the options files are handled.
It doesn't contradict any prior/existing docs, but makes it clearer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously these files were split into arguments based on default IFS
(space, tab, newline), which means that they couldn't hold whitespaces.
Now they're split by newlines, so the entire line is a single value.
Like before, values with newline[s] or empty can't be stored at the
file, but other than these the files can now hold arbitrary values.
This is potentially a breaking change, because while it was documented
that there should be one value per line (and the example didn't add
leading/trailing spaces), in practice it was possible to place several
values per line, and leading/trailing spaces were ignored.
So this will break for users who placed several options per line and/or
expect whitespaces to be ignored.
Also, libass and fribidi didn't support *_options files, now they do.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While configure CLI options are not used with ./build and ./rebuild,
scripts/*-config can be invoked directly with arguments, and these
script do take that into account.
Previously, spaces in such arguments e.g. --extra-libs="-L/foo -lbar"
caused the argument to be incorrectly split (on IFS), and now they're
preserved correctly.
The issue was that the arguments were stored using USER_OPTS="$@",
and the var value was later used unquoted - which splits on IFS.
Another issue is that VAR="$@" is unspecified by posix, because quoted
"$@" is only specified where field-splitting otherwise happens, but it
doesn't happen in variable assignment.
The solution is to never store "$@", and instead just use it directly.
Also, previously scripts/fribidi-config ignored CLI arguments, now it
doesn't.
Config options at NAME_options files will be fixed at the next commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This affects CLI arguments to ./build, ./rebuild, as well as when
invoking any of scripts/*-build directly.
Previously, if such CLI argument contained a space, then the argument
was incorrectly split. Now spaces are taken correctly.
The issue was that the scripts used unquoted $@, which is identical to
unquoted $*, i.e. it's field-split on IFS.
Now we use quoted "$@", which preserves the arguments exactly.
Also, previously scripts/fribidi-build ignored the CLI arguments, and
now it doesn't (but we still override any -jN option with -j1).
|
|
|
|
|
|
|
|
|
|
|
|
| |
Newer versions of Ubuntu (and future versions of Debian) enable LTO by
default for package builds. This is apparently incompatible with how we
compile mpv using static builds of ffmpeg and libass.
Fixes https://github.com/mpv-player/mpv-build/issues/158
Further reading:
- https://wiki.ubuntu.com/ToolChain/LTO
- https://wiki.debian.org/ToolChain/LTO
|
| |
|
|
|
|
|
|
|
| |
This became necessary with
libass/libass@c9c4fed39339ffde45123013a117e06d0bb9c488
fixes #152, #150
|
| |
|
|
|
|
|
| |
This saves Debian users from installing python-is-python3
and others from accidentally running waf with python2 (unsupported).
|
| |
|
|
|
|
| |
Debian is determined to make the python3 upgrade as painful as possible
|
|
|
|
| |
it is no longer used by ffmpeg
|
| |
|
|
|
|
|
|
| |
The Debian libaom package hasn't been updated since v1.0.0-errata1
released 2019-01-08! FFmpeg has moved on and will no longer build with
this. Luckily, there's finally a libdav1d pacakge, so use that.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This option no longer exists, as zsh completion is installed
unconditionally now.
See https://github.com/mpv-player/mpv/pull/5139
|
|
|
|
| |
Fixes #120.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The pacakge isn't meant to be redistributed and those building it will
have everything in the source dir anyway.
|
|
|
|
| |
I think this is covered by .desktop now.
|
| |
|
|
|
|
| |
Nobody should ever need this. These codecs can still be decoded.
|
|
|
|
|
| |
This reverts commit 8c9abd8c7914b71562e2d81faad76015526a9f8e. I'm
restoring them, bugs will be my own responsibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
What’s so special about this distro that we not only have a repository
with scripts to compensate for the inability of its maintainers to
package and distribute software to our users, but also have to deal
with their incredibly bad tooling?
Also, the instructions don’t work and only waste users’ time. If these
“only exist for users who want to hurt themselves” then perhaps we
shouldn’t have them in the first place, even if “wants to hurt
themselves” practically describes the majority of Debian users.
Closes #106.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While it was possible before to build any branch of mpv/ffmpeg/etc by
just git checkout $whatever and then ./build, it got reset after
./rebuild or ./update etc.
Add use-mpv-custom and use-ffmpeg-custom which accept any
commit/branch/tag which will survive ./rebuild, ./update, etc.
This should make it slightly easier to build past versions of mpv.
While at it, also add use-libass-{master|custom}
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously $checkout_<proj> were constructed as commands which were
executed later. This is not very flexible and also hard to follow and
modify.
Change them to be used as normal arguments which contain the value
release/master, possibly with additional space-separated '-' to indicate
that the config file should be ignored (used when invoked with --master
or --release).
|
|
|
|
|
|
|
|
| |
Commit a0f90ad changed from git checkout --detached $rev to
git checkout $rev^0 to support old git versions without detach,
however, mpv-build use cases don't require to detach in the first place.
Just use normal checkout
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
they're no longer supported
|
| |
|
|
|
|
|
|
|
| |
It's not built by default either. Someone who wants to build fribidi
with this can just uncommment all locations.
Fixes #82.
|
|
|
|
|
|
|
|
|
| |
libschroedinger-dev is being removed from development in debian and is
also absent from the Ubuntu 17.04 development branch.
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845037 for more details.
Signed-off-by: Vishnu Vardhan Reddy Naini <vishnu@vishnunaini.com>
|
|
|
|
| |
fixes #78
|
|
|
|
|
|
|
| |
it's been replaced by libopenjp2-7-dev, but that
causes link errors and I don't care enough to find
out why. ffmpeg seems to have native decode support
anyway.
|
| |
|
|
|
|
| |
pdf wasn't being built anyway
|
| |
|
| |
|
| |
|