Commit Graph

49 Commits

Author SHA1 Message Date
Kacper Michajłow 7d63b81cf1 ci: disable Werror for libplacebo subproject build 2023-10-23 20:35:13 +02:00
llyyr f5ca11e12b meson: make libplacebo a required dependency
Make it not possible to build mpv without the latest libplacebo anymore.
This will allow for less code duplication between mpv and libplacebo,
and in the future also let us delete legacy ifdefs and track libplacebo
better.
2023-10-23 13:03:29 +02:00
Kacper Michajłow b9b58f122b ci: enable -Werror
For better feedback on build status and to keep mpv warning free.

Except for macos builds, there are more issue there that need fixing.
2023-10-19 14:03:23 +00:00
Kacper Michajłow 9d8dfc7b49 ci/mingw: use vulkan-loader v1.3.266
Upstream has been changing buildsystem and current vulkan.pc is not
functional with custom prefix path.

Rollback to older version until it is fixed.

See:
https://github.com/KhronosGroup/Vulkan-Loader/issues/1318
https://github.com/KhronosGroup/Vulkan-Loader/issues/1319
2023-10-07 17:47:57 +00:00
sfan5 140d018578 ci/mingw: drop old workarounds for vulkan-headers
These got fixed upstream.
2023-09-23 11:30:18 +02:00
sfan5 90543610c2 ci/mingw: attempt to enable Vulkan Video Decoding 2023-08-29 17:52:17 +02:00
sfan5 76b1d282a5 ci/mingw: disable vulkan for 32-bit build
There's some cdecl / stdcall linking nonsense breaking the build
which I'm not inclined to debug this Sunday at all.
32-bit is not important anyway, so just disable it there.

On the plus side the new functional structure makes this very painless.
2023-08-21 16:43:38 +02:00
sfan5 c936377e34 ci/mingw: don't include useless DLLs in artifact 2023-08-21 16:43:38 +02:00
sfan5 b11b602312 ci/mingw: refactor build script into functions 2023-08-21 16:43:38 +02:00
sfan5 654ccb3c2c ci/mingw: enable more ffmpeg features
If someone wants to use the CI artifacts for day-to-day usage
or even for certain tests it can be useful to take screenshots
and use e.g. DShow (--disable-devices option), so enable those.
2023-08-21 16:43:38 +02:00
sfan5 aed8d6f552 ci/mingw: add necessary deps and enable vulkan 2023-08-21 16:43:38 +02:00
sfan5 9b9409196b ci/mingw: move functional test to workflow
Arguably the better place for this as it provides fine-grained feedback.
2023-08-21 16:43:38 +02:00
sfan5 c7342bbd5a ci/mingw: update dependency versions 2023-08-21 16:43:38 +02:00
Niklas Haas 24dca265b4 meson: remove redundant libplacebo-next check
Now implied by the minimum libplacebo version.
2023-08-18 16:39:57 +02:00
Dudemanguy 7adb56ccd9 ci: update the mpv.com path
Following the previous commit, it will now be in build/player.
2023-07-31 19:00:06 +00:00
Kacper Michajłow 38ad2467a4 ci/mingw: reduce git clone depth to 1 2023-07-25 11:34:59 +02:00
Kacper Michajłow 95a2d5b044 ci/mingw: use ccache
Can significantly reduce build time, most of dependencies have fixed
versions, so they can be cached fully. Others will be incrementally
build.

Cache is saved on every run and restored from the newest one. Size is
limited to 500M (compressed) to keep cache save/restore fast. Clean
cached build is little over 100M, so we have a headroom as things will
grow. ccache will automatically evict least recently used entries.

It is unlikely that clean build will exceed the limit anytime soon, but
it is something to keep in mind, as we do not want to evict cache
entries from current build, so the cache size need to be set correctly.
2023-07-25 11:34:59 +02:00
Kacper Michajłow d521ba38d1 ci/mingw: check if binary is runnable before packaging 2023-07-25 11:34:59 +02:00
Kacper Michajłow ff3739b36e ci/mingw: update luajit to fix i686 crashes
2.1.0-beta3 is ancient. Disable unwinding in luajit, as it requires SEH
to be enabled in the image, but it is not on i686 target and it
crashes when luajit tries to use SEH.
2023-07-24 19:44:34 +02:00
LaserEyess f2cce5f38f waf: remove waf as a build system
Remove waf entirely in favor of meson as the only supported build
system. Waf was officially deprecated in 0.36.0, and has not been
preferred over meson since 0.35.0.
2023-07-23 19:55:51 +00:00
sfan5 f1c9daa169 ci: use a different mirror for freetype
GNU decided to break theirs
2023-06-13 10:01:05 +02:00
Kacper Michajłow 1c82d6ae7a ci/mingw: add dlltool to the meson crossfile 2023-06-08 19:52:10 -04:00
Kacper Michajłow 8037320920 ci/mingw: update dependencies versions 2023-06-08 06:26:06 -04:00
Kacper Michajłow 21301dc12d ci/mingw: require libplacebo-next
libplacebo is build by us, so we can explicitly enable it.
2023-03-28 09:23:38 -07:00
Dudemanguy e82d9045a4 ci: separate meson tests and reorganize build steps
Instead of running the test directly in the build script, we can make a
separate step in the workflow so it looks a little prettier. For running
the actual tests, we skip mingw since they will never be run (cross
compiled). Additionally, improve the github workflow logic a bit so that
way logs on failure are only shown when that specific step fails. The
freebsd job still has to be less elegant since it's in a weird vm
thingy.

Not really related but the location of various build directories
(particularly waf) are corrected as well (might as well).
2023-03-02 15:45:27 +00:00
Kacper Michajłow e4e3a8fc0b ci: pack mingw64 meson build instead of waf 2023-01-31 14:50:26 +00:00
Kacper Michajłow 7151b5122a ci: separate meson/waf build dirs 2023-01-31 14:50:26 +00:00
Kacper Michajłow 08d11e8c5d ci: use meson compile instead of ninja directly 2023-01-31 14:50:26 +00:00
Kacper Michajłow 2868ecf2ac ci: do not print compile commands
It only shadows warnings/errors and makes log files bloated.
2023-01-31 14:50:26 +00:00
Thomas Weißschuh 44179398b0 ci: run meson tests 2023-01-19 22:15:14 +00:00
sfan5 7f5bcd7244 ci: upload resulting binary of mingw64 build 2022-11-01 16:30:59 +01:00
sfan5 f67a56b830 ci/mingw64: refresh build scripts
- newer library versions
- use libplacebo submodules
- prefer meson where possible
- fix minor details
2022-11-01 16:30:59 +01:00
Dudemanguy 6ebc4928c5 ci: use meson setup build instead of meson build
The old "meson build" build command was actually deprecated a few months
ago*. It turns out that you're supposed to use "meson setup build"
instead which has been around for years. Go ahead and be a good citizen
and update this in the CI. Also replace any mention of "meson build"
with "meson setup build" in the documentation as well and change the one
random hardcoded string we have in meson.build to "meson configure
build" (might as well).

*: 3c7ab542c0
2022-10-29 17:55:33 +00:00
Jan Ekström 1e1956e15b ci/build-mingw64: enable test building
Not currently run, but adds coverage for compiled code.
2022-06-15 21:19:10 +03:00
Jan Ekström 5d9af3a9dd ci/build-mingw64: bump dependencies 2022-06-15 21:19:10 +03:00
Jan Ekström 05a3affc58 ci/build-mingw64: switch to fossils directory for zlib
This contains current as well as previous versions, while the root
directory only contains the latest version.
2022-06-15 21:19:10 +03:00
Jan Ekström 3a52159286 ci/mingw64: add git libplacebo for gpu-next
This way mingw-w64 becomes the first CI workflow to build gpu-next.

Unfortunately, currently neither wscript or meson has gpu-next or
libplacebo-next as an option that one can require.
2022-06-07 21:04:00 +03:00
Jan Ekström a10e3ab230 ci/mingw64: make meson crossfile global
This enables it to be utilized for dependencies such as libplacebo.
2022-06-07 21:02:22 +03:00
Dudemanguy 31780a6db5 ci: add meson builds
Update the github workflows to also do meson builds for every OS.
Additionally, make every workflow execute the built mpv executable
(except for windows and FreeBSD's waf executable) to make sure that it
runs. As an aside, FreeBSD unfortunately is a bit less elegant since it
is in a VM.
2021-11-14 19:13:10 +00:00
sfan5 b3f3c3fec0 ci: update libs used by mingw build 2021-10-07 21:01:48 +03:00
sfan5 cc25137eae ci: fix mingw build by adding harfbuzz 2020-11-15 17:32:03 +01:00
sfan5 5e4ec15e6c ci: fix spirv-cross build in mingw scripts 2020-09-25 18:23:05 +02:00
sfan5 8fbc4b1737 ci: add d3d11 to mingw build 2020-07-01 00:44:40 +03:00
sfan5 0e2d4ee595 ci: replace mingw build scripts 2020-06-22 23:57:15 +03:00
Jan Ekström 038f2213e1 ci: remove libass enablement
This is no longer a configurable option.
2020-03-22 14:33:41 +02:00
wm4 ebab42c9a8 ci: remove now unuspported libdvdread 2019-09-13 18:19:50 +02:00
Martin Herkt 6eb59fea2f
ci: explicitly call waf with python3
Python 2 may not be present in the CI images in the future,
but waf’s shebang line still uses its executable name.
Explicitly call the right major version of the interpreter.
2018-09-11 01:26:28 +02:00
Jan Ekström 2d785f3ea3 ci: do bootstrap outside the docker container
This way the docker container in itself does no networking.

It seems like travis disabled network access from the actual docker
containers.
2018-07-29 12:07:43 +03:00
Martin Herkt c75f98e3ab
ci: add mingw64 targets 2018-07-05 21:33:03 +02:00