gen.lua (2984B)
- cflags{
- '-Wall', '-Wno-maybe-uninitialized',
- '-D _XOPEN_SOURCE=700',
- '-I $srcdir',
- '-I $srcdir/include',
- '-I $srcdir/tools',
- '-I $outdir',
- '-I $outdir/include/dav1d',
- '-I $dir',
- }
- nasmflags{
- '-i $srcdir/src/',
- '-i $outdir/',
- '-f elf64',
- }
- pkg.hdrs = {
- copy('$outdir/include/dav1d', '$srcdir/include/dav1d', {
- 'common.h',
- 'data.h',
- 'dav1d.h',
- 'headers.h',
- 'picture.h',
- }),
- '$outdir/include/dav1d/version.h',
- }
- pkg.deps = {
- '$gendir/headers',
- '$outdir/cli_config.h',
- '$outdir/vcs_version.h',
- '$outdir/config.asm',
- }
- build('sed', '$outdir/include/dav1d/version.h', '$srcdir/include/dav1d/version.h.in', {
- expr={
- '-e s,@DAV1D_API_VERSION_MAJOR@,5,',
- '-e s,@DAV1D_API_VERSION_MINOR@,0,',
- '-e s,@DAV1D_API_VERSION_PATCH@,0,',
- },
- })
- build('awk', '$outdir/vcs_version.h', '$dir/ver', {
- expr=[['{printf "#define DAV1D_VERSION \"%s\"\n", $$1}']],
- })
- build('awk', '$outdir/config.asm', '$dir/config.h', {
- expr=[['$$1 == "#define" {print "%define " substr($$0, length("#define ") + 1)} END {print "%define private_prefix dav1d"}']],
- })
- build('touch', '$outdir/cli_config.h')
- local srcs = paths[[
- src/(
- cdf.c
- cpu.c
- data.c
- decode.c
- dequant_tables.c
- getbits.c
- intra_edge.c
- itx_1d.c
- lf_mask.c
- log.c
- mem.c
- msac.c
- obu.c
- picture.c
- qm.c
- ref.c
- refmvs.c
- scan.c
- tables.c
- warpmv.c
- wedge.c
- lib.c
- thread_task.c
- @x86_64 x86/(
- cpu.c msac_init.c refmvs_init.c
- cpuid.asm msac.asm refmvs.asm cdef_avx2.asm itx_avx2.asm
- looprestoration_avx2.asm cdef_sse.asm itx_sse.asm
- cdef_avx512.asm
- mc_avx512.asm
- mc_avx2.asm
- film_grain_avx2.asm
- ipred_avx2.asm
- loopfilter_avx2.asm
- film_grain_sse.asm
- ipred_sse.asm
- loopfilter_sse.asm
- looprestoration_sse.asm
- mc_sse.asm
- cdef16_avx2.asm
- film_grain16_avx2.asm
- ipred16_avx2.asm
- itx16_avx2.asm
- loopfilter16_avx2.asm
- looprestoration16_avx2.asm
- mc16_avx2.asm
- cdef16_sse.asm
- film_grain16_sse.asm
- ipred16_sse.asm
- itx16_sse.asm
- loopfilter16_sse.asm
- looprestoration16_sse.asm
- mc16_sse.asm
- )
- )
- ]]
- local tmpl = paths[[
- cdef_apply_tmpl.c
- cdef_tmpl.c
- fg_apply_tmpl.c
- film_grain_tmpl.c
- ipred_prepare_tmpl.c
- ipred_tmpl.c
- itx_tmpl.c
- lf_apply_tmpl.c
- loopfilter_tmpl.c
- looprestoration_tmpl.c
- lr_apply_tmpl.c
- mc_tmpl.c
- recon_tmpl.c
- @x86_64 x86/(
- cdef_init_tmpl.c
- film_grain_init_tmpl.c
- ipred_init_tmpl.c
- itx_init_tmpl.c
- loopfilter_init_tmpl.c
- looprestoration_init_tmpl.c
- mc_init_tmpl.c
- )
- ]]
- for _, bit in ipairs{'8', '16'} do
- for _, src in ipairs(tmpl) do
- local obj = ('$outdir/%s/%s.o'):format(bit, src)
- build('cc', obj, {'$srcdir/src/'..src, '||', '$gendir/deps'}, {cflags='$cflags -D BITDEPTH='..bit})
- table.insert(srcs, obj)
- end
- end
- lib('libdav1d.a', srcs)
- exe('dav1d', [[
- tools/(
- dav1d.c
- dav1d_cli_parse.c
- input/(input.c annexb.c ivf.c section5.c)
- output/(md5.c null.c output.c y4m2.c yuv.c)
- )
- libdav1d.a
- ]])
- file('bin/dav1d', '755', '$outdir/dav1d')
- fetch 'git'