summaryrefslogtreecommitdiff
path: root/pkg/mpv/gen.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/mpv/gen.lua')
-rw-r--r--pkg/mpv/gen.lua347
1 files changed, 259 insertions, 88 deletions
diff --git a/pkg/mpv/gen.lua b/pkg/mpv/gen.lua
index 42b409d5..c97feb5a 100644
--- a/pkg/mpv/gen.lua
+++ b/pkg/mpv/gen.lua
@@ -1,4 +1,4 @@
-build('awk', '$outdir/generated/version.h', {'$srcdir/VERSION', '|', '$dir/version.awk'}, {
+build('awk', '$outdir/version.h', {'$srcdir/VERSION', '|', '$dir/version.awk'}, {
expr='-f $dir/version.awk',
})
@@ -9,13 +9,13 @@ sub('tools.ninja', function()
end)
cflags{
- '-Wno-deprecated-declarations',
'-D _GNU_SOURCE',
'-I $dir',
'-I $outdir',
'-I $srcdir',
'-isystem $basedir/pkg/ffmpeg/src',
'-isystem $builddir/pkg/ffmpeg/include',
+ '-isystem $builddir/pkg/libplacebo/include',
'-isystem $builddir/pkg/linux-headers/include',
'-isystem $builddir/pkg/zlib/include',
}
@@ -27,26 +27,31 @@ local libs = {
'ffmpeg/libavutil.a',
'ffmpeg/libswresample.a.d',
'ffmpeg/libswscale.a.d',
+ 'libplacebo/libplacebo.a',
'zlib/libz.a',
}
pkg.deps = {
- '$outdir/generated/version.h',
+ '$outdir/version.h',
'pkg/ffmpeg/headers',
'pkg/ffmpeg/fetch',
+ 'pkg/libplacebo/headers',
'pkg/linux-headers/headers',
'pkg/zlib/headers',
}
-build('copy', '$outdir/generated/wayland/idle-inhibit-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/idle-inhibit-unstable-v1-client-protocol.h')
-build('copy', '$outdir/generated/wayland/linux-dmabuf-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/linux-dmabuf-unstable-v1-client-protocol.h')
-build('copy', '$outdir/generated/wayland/presentation-time.h', '$builddir/pkg/wayland-protocols/include/presentation-time-client-protocol.h')
-build('copy', '$outdir/generated/wayland/viewporter.h', '$builddir/pkg/wayland-protocols/include/viewporter-client-protocol.h')
-build('copy', '$outdir/generated/wayland/xdg-decoration-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/xdg-decoration-unstable-v1-client-protocol.h')
-build('copy', '$outdir/generated/wayland/xdg-shell.h', '$builddir/pkg/wayland-protocols/include/xdg-shell-client-protocol.h')
+build('copy', '$outdir/content-type-v1.h', '$builddir/pkg/wayland-protocols/include/content-type-v1-client-protocol.h')
+build('copy', '$outdir/fractional-scale-v1.h', '$builddir/pkg/wayland-protocols/include/fractional-scale-v1-client-protocol.h')
+build('copy', '$outdir/idle-inhibit-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/idle-inhibit-unstable-v1-client-protocol.h')
+build('copy', '$outdir/linux-dmabuf-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/linux-dmabuf-unstable-v1-client-protocol.h')
+build('copy', '$outdir/presentation-time.h', '$builddir/pkg/wayland-protocols/include/presentation-time-client-protocol.h')
+build('copy', '$outdir/single-pixel-buffer-v1.h', '$builddir/pkg/wayland-protocols/include/single-pixel-buffer-v1-client-protocol.h')
+build('copy', '$outdir/viewporter.h', '$builddir/pkg/wayland-protocols/include/viewporter-client-protocol.h')
+build('copy', '$outdir/xdg-decoration-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/xdg-decoration-unstable-v1-client-protocol.h')
+build('copy', '$outdir/xdg-shell.h', '$builddir/pkg/wayland-protocols/include/xdg-shell-client-protocol.h')
rule('file2string', '$outdir/file2string $in >$out')
local function file2string(src)
- local out = '$outdir/generated/'..src..'.inc'
+ local out = '$outdir/'..src..'.inc'
build('file2string', out, {'$srcdir/'..src, '|', '$outdir/file2string'})
table.insert(pkg.deps, out)
end
@@ -56,8 +61,8 @@ file2string('etc/builtin.conf')
file2string('sub/osd_font.otf')
local lua = {
'defaults.lua', 'assdraw.lua', 'options.lua', 'osc.lua',
- 'ytdl_hook.lua', 'stats.lua', 'console.lua',
- 'auto_profiles.lua',
+ 'ytdl_hook.lua', 'stats.lua', 'console.lua', 'auto_profiles.lua',
+ 'input.lua',
}
for _, f in ipairs(lua) do
file2string('player/lua/'..f)
@@ -72,78 +77,235 @@ for line in iterlines('config.h', 1) do
end
table.insert(pkg.inputs.gen, '$dir/config.h')
--- source inclusion parser
-local eval
-do
- local ops = {
- {tok='||', fn=function(a, b) return a or b end, binary=true},
- {tok='&&', fn=function(a, b) return a and b end, binary=true},
- {tok='!', fn=function(a) return not a end},
- }
- local function check(x)
- if not x then
- error('invalid expression')
- end
- end
- local function helper(s, i, j)
- local result, var, val
- if s:sub(i, i) == '(' then
- i = s:find('[^%s]', i + 1)
- check(i)
- result, i = parse(s, i, 1)
- check(i and s:sub(i, i) == ')')
- return result, s:find('[^%s]', i + 1)
- end
- if j > #ops then
- local k = select(2, s:find('^[%w_.-]+', i))
- check(k)
- var = s:sub(i, k):upper():gsub('-', '_')
- i = s:find('[^%s]', k + 1)
- return options['HAVE_'..var] or false, i
- end
- local op = ops[j]
- if op.binary then
- result, i = helper(s, i, j + 1)
- end
- if i and s:sub(i, i + #op.tok - 1) == op.tok then
- i = s:find('[^%s]', i + #op.tok)
- check(i)
- val, i = helper(s, i, j)
- result = op.fn(val, result)
- elseif not op.binary then
- result, i = helper(s, i, j + 1)
- end
- return result, i
- end
- eval = function(s, i)
- result, i = helper(s, i, 1)
- check(not i)
- return result
- end
-end
+local srcs = {
+ -- src/meson.build:/^sources =/
+ 'audio/aframe.c',
+ 'audio/chmap.c',
+ 'audio/chmap_sel.c',
+ 'audio/decode/ad_lavc.c',
+ 'audio/decode/ad_spdif.c',
+ 'audio/filter/af_drop.c',
+ 'audio/filter/af_format.c',
+ 'audio/filter/af_lavcac3enc.c',
+ 'audio/filter/af_scaletempo.c',
+ 'audio/filter/af_scaletempo2.c',
+ 'audio/filter/af_scaletempo2_internals.c',
+ 'audio/fmt-conversion.c',
+ 'audio/format.c',
+ 'audio/out/ao.c',
+ 'audio/out/ao_lavc.c',
+ 'audio/out/ao_null.c',
+ 'audio/out/ao_pcm.c',
+ 'audio/out/buffer.c',
-local srcs = {}
-for line in iterlines('sources.txt', 1) do
- local i = line:find(' ', 1, true)
- local add = true
- if not i or eval(line, i + 1) then
- srcs[line:sub(1, i and i - 1)] = true
- end
-end
-srcs = table.keys(srcs)
+ 'common/av_common.c',
+ 'common/av_log.c',
+ 'common/codecs.c',
+ 'common/common.c',
+ 'common/encode_lavc.c',
+ 'common/msg.c',
+ 'common/playlist.c',
+ 'common/recorder.c',
+ 'common/stats.c',
+ 'common/tags.c',
+ 'common/version.c',
+
+ 'demux/codec_tags.c',
+ 'demux/cue.c',
+ 'demux/cache.c',
+ 'demux/demux.c',
+ 'demux/demux_cue.c',
+ 'demux/demux_disc.c',
+ 'demux/demux_edl.c',
+ 'demux/demux_lavf.c',
+ 'demux/demux_mf.c',
+ 'demux/demux_mkv.c',
+ 'demux/demux_mkv_timeline.c',
+ 'demux/demux_null.c',
+ 'demux/demux_playlist.c',
+ 'demux/demux_raw.c',
+ 'demux/demux_timeline.c',
+ 'demux/ebml.c',
+ 'demux/packet.c',
+ 'demux/timeline.c',
+
+ 'filters/f_async_queue.c',
+ 'filters/f_autoconvert.c',
+ 'filters/f_auto_filters.c',
+ 'filters/f_decoder_wrapper.c',
+ 'filters/f_demux_in.c',
+ 'filters/f_hwtransfer.c',
+ 'filters/f_lavfi.c',
+ 'filters/f_output_chain.c',
+ 'filters/f_swresample.c',
+ 'filters/f_swscale.c',
+ 'filters/f_utils.c',
+ 'filters/filter.c',
+ 'filters/frame.c',
+ 'filters/user_filters.c',
+
+ 'input/cmd.c',
+ 'input/event.c',
+ 'input/input.c',
+ 'input/ipc.c',
+ 'input/keycodes.c',
+
+ 'misc/bstr.c',
+ 'misc/charset_conv.c',
+ 'misc/dispatch.c',
+ 'misc/io_utils.c',
+ 'misc/json.c',
+ 'misc/language.c',
+ 'misc/natural_sort.c',
+ 'misc/node.c',
+ 'misc/path_utils.c',
+ 'misc/random.c',
+ 'misc/rendezvous.c',
+ 'misc/thread_pool.c',
+ 'misc/thread_tools.c',
+
+ 'options/m_config_core.c',
+ 'options/m_config_frontend.c',
+ 'options/m_option.c',
+ 'options/m_property.c',
+ 'options/options.c',
+ 'options/parse_commandline.c',
+ 'options/parse_configfile.c',
+ 'options/path.c',
+
+ 'player/audio.c',
+ 'player/client.c',
+ 'player/command.c',
+ 'player/configfiles.c',
+ 'player/external_files.c',
+ 'player/loadfile.c',
+ 'player/main.c',
+ 'player/misc.c',
+ 'player/osd.c',
+ 'player/playloop.c',
+ 'player/screenshot.c',
+ 'player/scripting.c',
+ 'player/sub.c',
+ 'player/video.c',
+
+ 'stream/cookies.c',
+ 'stream/stream.c',
+ 'stream/stream_avdevice.c',
+ 'stream/stream_cb.c',
+ 'stream/stream_concat.c',
+ 'stream/stream_edl.c',
+ 'stream/stream_file.c',
+ 'stream/stream_lavf.c',
+ 'stream/stream_memory.c',
+ 'stream/stream_mf.c',
+ 'stream/stream_null.c',
+ 'stream/stream_slice.c',
+
+ 'sub/ass_mp.c',
+ 'sub/dec_sub.c',
+ 'sub/draw_bmp.c',
+ 'sub/filter_sdh.c',
+ 'sub/img_convert.c',
+ 'sub/lavc_conv.c',
+ 'sub/osd.c',
+ 'sub/osd_libass.c',
+ 'sub/sd_ass.c',
+ 'sub/sd_lavc.c',
+
+ 'video/csputils.c',
+ 'video/decode/vd_lavc.c',
+ 'video/filter/refqueue.c',
+ 'video/filter/vf_format.c',
+ 'video/filter/vf_sub.c',
+ 'video/fmt-conversion.c',
+ 'video/hwdec.c',
+ 'video/image_loader.c',
+ 'video/image_writer.c',
+ 'video/img_format.c',
+ 'video/mp_image.c',
+ 'video/mp_image_pool.c',
+ 'video/out/aspect.c',
+ 'video/out/bitmap_packer.c',
+ 'video/out/dither.c',
+ 'video/out/dr_helper.c',
+ 'video/out/filter_kernels.c',
+ --'video/out/gpu/context.c',
+ --'video/out/gpu/error_diffusion.c',
+ 'video/out/gpu/hwdec.c',
+ --'video/out/gpu/lcms.c',
+ --'video/out/gpu/libmpv_gpu.c',
+ --'video/out/gpu/osd.c',
+ 'video/out/gpu/ra.c',
+ --'video/out/gpu/shader_cache.c',
+ --'video/out/gpu/spirv.c',
+ --'video/out/gpu/user_shaders.c',
+ --'video/out/gpu/utils.c',
+ --'video/out/gpu/video.c',
+ --'video/out/gpu/video_shaders.c',
+ 'video/out/libmpv_sw.c',
+ 'video/out/vo.c',
+ --'video/out/vo_gpu.c',
+ 'video/out/vo_image.c',
+ 'video/out/vo_lavc.c',
+ 'video/out/vo_libmpv.c',
+ 'video/out/vo_null.c',
+ 'video/out/vo_tct.c',
+ 'video/out/vo_kitty.c',
+ 'video/out/win_state.c',
+ 'video/repack.c',
+ 'video/sws_utils.c',
+
+ --'video/out/placebo/ra_pl.c',
+ --'video/out/placebo/utils.c',
+ --'video/out/vo_gpu_next.c',
+ --'video/out/gpu_next/context.c',
+
+ 'osdep/io.c',
+ 'osdep/semaphore-mac.c',
+ 'osdep/subprocess.c',
+ 'osdep/timer.c',
+
+ 'ta/ta.c',
+ 'ta/ta_talloc.c',
+ 'ta/ta_utils.c',
+
+ 'osdep/language-posix.c',
+ 'osdep/subprocess-posix.c',
+ 'osdep/threads-posix.c',
+ 'osdep/path-unix.c',
+ 'osdep/terminal-unix.c',
+ 'osdep/timer-linux.c',
+ 'input/ipc-unix.c',
+ 'osdep/poll_wrapper.c',
+ 'sub/filter_regex.c',
+}
+if options.HAVE_AV_CHANNEL_LAYOUT then
+ table.insert(srcs, 'audio/chmap_avchannel.c')
+end
if options.HAVE_ALSA then
cflags{'-isystem $builddir/pkg/alsa-lib/include'}
+ table.insert(srcs, 'audio/out/ao_alsa.c')
table.insert(libs, 'alsa-lib/libasound.a')
table.insert(pkg.deps, 'pkg/alsa-lib/headers')
end
if options.HAVE_SNDIO then
cflags{'-isystem $builddir/pkg/sndio/include'}
+ table.insert(srcs, 'audio/out/ao_sndio.c')
table.insert(libs, 'sndio/libsndio.a')
table.insert(pkg.deps, 'pkg/sndio/headers')
end
if options.HAVE_DRM then
cflags{'-isystem $builddir/pkg/libdrm/include'}
+ table.insert(srcs, {
+ 'video/drmprime.c',
+ 'video/out/drm_atomic.c',
+ 'video/out/drm_common.c',
+ 'video/out/drm_prime.c',
+ 'video/out/hwdec/hwdec_drmprime.c',
+ 'video/out/hwdec/hwdec_drmprime_overlay.c',
+ 'video/out/vo_drm.c',
+ })
table.insert(libs, 'libdrm/libdrm.a')
table.insert(pkg.deps, 'pkg/libdrm/headers')
end
@@ -154,43 +316,52 @@ if options.HAVE_LIBASS then
end
if options.HAVE_LUA then
cflags{'-isystem $builddir/pkg/lua/include'}
+ table.insert(srcs, 'player/lua.c')
table.insert(libs, 'lua/liblua.a')
table.insert(pkg.deps, 'pkg/lua/headers')
end
+if options.HAVE_WAYLAND or options.HAVE_DRM then
+ table.insert(srcs, 'video/out/present_sync.c')
+end
if options.HAVE_WAYLAND then
cflags{
'-isystem $builddir/pkg/libxkbcommon/include',
'-isystem $builddir/pkg/wayland/include',
}
+ table.insert(srcs, {
+ 'video/out/vo_wlshm.c',
+ 'video/out/wayland_common.c',
+ '$builddir/pkg/wayland-protocols/content-type-v1-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/fractional-scale-v1-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/idle-inhibit-unstable-v1-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/linux-dmabuf-unstable-v1-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/single-pixel-buffer-v1-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/presentation-time-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/viewporter-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/xdg-decoration-unstable-v1-protocol.c.o',
+ '$builddir/pkg/wayland-protocols/xdg-shell-protocol.c.o',
+ })
table.insert(libs, {
'wayland/libwayland-client.a.d',
'wayland/libwayland-cursor.a.d',
'libxkbcommon/libxkbcommon.a',
})
table.insert(pkg.deps, {
- '$outdir/generated/wayland/idle-inhibit-unstable-v1.h',
- '$outdir/generated/wayland/linux-dmabuf-unstable-v1.h',
- '$outdir/generated/wayland/presentation-time.h',
- '$outdir/generated/wayland/viewporter.h',
- '$outdir/generated/wayland/xdg-decoration-unstable-v1.h',
- '$outdir/generated/wayland/xdg-shell.h',
+ '$outdir/content-type-v1.h',
+ '$outdir/fractional-scale-v1.h',
+ '$outdir/idle-inhibit-unstable-v1.h',
+ '$outdir/linux-dmabuf-unstable-v1.h',
+ '$outdir/single-pixel-buffer-v1.h',
+ '$outdir/presentation-time.h',
+ '$outdir/viewporter.h',
+ '$outdir/xdg-decoration-unstable-v1.h',
+ '$outdir/xdg-shell.h',
'pkg/libxkbcommon/headers',
'pkg/wayland/headers',
})
end
-exe('mpv', {
- 'input/ipc-unix.c',
- 'osdep/main-fn-unix.c',
- 'osdep/subprocess-posix.c',
- 'osdep/terminal-unix.c',
- 'osdep/timer-linux.c',
- 'ta/ta.c',
- 'ta/ta_talloc.c',
- 'ta/ta_utils.c',
- srcs,
- expand{'$builddir/pkg/', libs},
-})
+exe('mpv', {'osdep/main-fn-unix.c', srcs, expand{'$builddir/pkg/', libs}})
file('bin/mpv', '755', '$outdir/mpv')
man{'$dir/mpv.1'}