project("libavutil")
  uuid("19216035-F781-4F15-B009-213B7E3A18AC")
  kind("StaticLib")
  language("C")
  ffmpeg_common()

  filter("files:not wmaprodec.c")
    warnings "Off"
  filter({})

  -- libavutil/Makefile:
  --   HEADERS:
  files({
    "../../FFmpeg/libavutil/adler32.h",
    "../../FFmpeg/libavutil/aes.h",
    "../../FFmpeg/libavutil/aes_ctr.h",
    "../../FFmpeg/libavutil/attributes.h",
    "../../FFmpeg/libavutil/audio_fifo.h",
    "../../FFmpeg/libavutil/avassert.h",
    "../../FFmpeg/libavutil/avstring.h",
    "../../FFmpeg/libavutil/avutil.h",
    "../../FFmpeg/libavutil/base64.h",
    "../../FFmpeg/libavutil/blowfish.h",
    "../../FFmpeg/libavutil/bprint.h",
    "../../FFmpeg/libavutil/bswap.h",
    "../../FFmpeg/libavutil/buffer.h",
    "../../FFmpeg/libavutil/cast5.h",
    "../../FFmpeg/libavutil/camellia.h",
    "../../FFmpeg/libavutil/channel_layout.h",
    "../../FFmpeg/libavutil/common.h",
    "../../FFmpeg/libavutil/cpu.h",
    "../../FFmpeg/libavutil/crc.h",
    "../../FFmpeg/libavutil/des.h",
    "../../FFmpeg/libavutil/dict.h",
    "../../FFmpeg/libavutil/display.h",
    "../../FFmpeg/libavutil/dovi_meta.h",
    "../../FFmpeg/libavutil/downmix_info.h",
    "../../FFmpeg/libavutil/encryption_info.h",
    "../../FFmpeg/libavutil/error.h",
    "../../FFmpeg/libavutil/eval.h",
    "../../FFmpeg/libavutil/fifo.h",
    "../../FFmpeg/libavutil/file.h",
    "../../FFmpeg/libavutil/frame.h",
    "../../FFmpeg/libavutil/hash.h",
    "../../FFmpeg/libavutil/hdr_dynamic_metadata.h",
    "../../FFmpeg/libavutil/hmac.h",
    "../../FFmpeg/libavutil/hwcontext.h",
    "../../FFmpeg/libavutil/hwcontext_cuda.h",
    "../../FFmpeg/libavutil/hwcontext_d3d11va.h",
    "../../FFmpeg/libavutil/hwcontext_drm.h",
    "../../FFmpeg/libavutil/hwcontext_dxva2.h",
    "../../FFmpeg/libavutil/hwcontext_qsv.h",
    "../../FFmpeg/libavutil/hwcontext_mediacodec.h",
    "../../FFmpeg/libavutil/hwcontext_opencl.h",
    "../../FFmpeg/libavutil/hwcontext_vaapi.h",
    "../../FFmpeg/libavutil/hwcontext_videotoolbox.h",
    "../../FFmpeg/libavutil/hwcontext_vdpau.h",
    "../../FFmpeg/libavutil/hwcontext_vulkan.h",
    "../../FFmpeg/libavutil/imgutils.h",
    "../../FFmpeg/libavutil/intfloat.h",
    "../../FFmpeg/libavutil/intreadwrite.h",
    "../../FFmpeg/libavutil/lfg.h",
    "../../FFmpeg/libavutil/log.h",
    "../../FFmpeg/libavutil/macros.h",
    "../../FFmpeg/libavutil/mathematics.h",
    "../../FFmpeg/libavutil/mastering_display_metadata.h",
    "../../FFmpeg/libavutil/md5.h",
    "../../FFmpeg/libavutil/mem.h",
    "../../FFmpeg/libavutil/motion_vector.h",
    "../../FFmpeg/libavutil/murmur3.h",
    "../../FFmpeg/libavutil/opt.h",
    "../../FFmpeg/libavutil/parseutils.h",
    "../../FFmpeg/libavutil/pixdesc.h",
    "../../FFmpeg/libavutil/pixelutils.h",
    "../../FFmpeg/libavutil/pixfmt.h",
    "../../FFmpeg/libavutil/random_seed.h",
    "../../FFmpeg/libavutil/rc4.h",
    "../../FFmpeg/libavutil/rational.h",
    "../../FFmpeg/libavutil/replaygain.h",
    "../../FFmpeg/libavutil/ripemd.h",
    "../../FFmpeg/libavutil/samplefmt.h",
    "../../FFmpeg/libavutil/sha.h",
    "../../FFmpeg/libavutil/sha512.h",
    "../../FFmpeg/libavutil/spherical.h",
    "../../FFmpeg/libavutil/stereo3d.h",
    "../../FFmpeg/libavutil/threadmessage.h",
    "../../FFmpeg/libavutil/time.h",
    "../../FFmpeg/libavutil/timecode.h",
    "../../FFmpeg/libavutil/timestamp.h",
    "../../FFmpeg/libavutil/tree.h",
    "../../FFmpeg/libavutil/twofish.h",
    "../../FFmpeg/libavutil/version.h",
    "../../FFmpeg/libavutil/video_enc_params.h",
    "../../FFmpeg/libavutil/xtea.h",
    "../../FFmpeg/libavutil/tea.h",
    "../../FFmpeg/libavutil/tx.h",
    "../../FFmpeg/libavutil/film_grain_params.h",
  })
  --   ARCH_HEADERS:
  files({
    "../../FFmpeg/libavutil/bswap.h",
    "../../FFmpeg/libavutil/intmath.h",
    "../../FFmpeg/libavutil/intreadwrite.h",
    "../../FFmpeg/libavutil/timer.h",
  })
  --   BUILT_HEADERS (local xenia-specific copies):
  files({
    "avconfig.h",
    "ffversion.h",
  })
  --   OBJS:
  files({
    "../../FFmpeg/libavutil/adler32.c",
    "../../FFmpeg/libavutil/aes.c",
    "../../FFmpeg/libavutil/aes_ctr.c",
    "../../FFmpeg/libavutil/audio_fifo.c",
    "../../FFmpeg/libavutil/avstring.c",
    "../../FFmpeg/libavutil/avsscanf.c",
    "../../FFmpeg/libavutil/base64.c",
    "../../FFmpeg/libavutil/blowfish.c",
    "../../FFmpeg/libavutil/bprint.c",
    "../../FFmpeg/libavutil/buffer.c",
    "../../FFmpeg/libavutil/cast5.c",
    "../../FFmpeg/libavutil/camellia.c",
    "../../FFmpeg/libavutil/channel_layout.c",
    "../../FFmpeg/libavutil/csp.c",
    "../../FFmpeg/libavutil/cpu.c",
    "../../FFmpeg/libavutil/crc.c",
    "../../FFmpeg/libavutil/des.c",
    "../../FFmpeg/libavutil/dict.c",
    "../../FFmpeg/libavutil/display.c",
    "../../FFmpeg/libavutil/dovi_meta.c",
    "../../FFmpeg/libavutil/downmix_info.c",
    "../../FFmpeg/libavutil/encryption_info.c",
    "../../FFmpeg/libavutil/error.c",
    "../../FFmpeg/libavutil/eval.c",
    "../../FFmpeg/libavutil/fifo.c",
    "../../FFmpeg/libavutil/file.c",
    "../../FFmpeg/libavutil/file_open.c",
    "../../FFmpeg/libavutil/float_dsp.c",
    "../../FFmpeg/libavutil/fixed_dsp.c",
    "../../FFmpeg/libavutil/frame.c",
    "../../FFmpeg/libavutil/hash.c",
    "../../FFmpeg/libavutil/hdr_dynamic_metadata.c",
    "../../FFmpeg/libavutil/hmac.c",
    "../../FFmpeg/libavutil/hwcontext.c",
    "../../FFmpeg/libavutil/imgutils.c",
    "../../FFmpeg/libavutil/integer.c",
    "../../FFmpeg/libavutil/intmath.c",
    "../../FFmpeg/libavutil/lfg.c",
    "../../FFmpeg/libavutil/lls.c",
    "../../FFmpeg/libavutil/log.c",
    "../../FFmpeg/libavutil/log2_tab.c",
    "../../FFmpeg/libavutil/mathematics.c",
    "../../FFmpeg/libavutil/mastering_display_metadata.c",
    "../../FFmpeg/libavutil/md5.c",
    "../../FFmpeg/libavutil/mem.c",
    "../../FFmpeg/libavutil/murmur3.c",
    "../../FFmpeg/libavutil/opt.c",
    "../../FFmpeg/libavutil/parseutils.c",
    "../../FFmpeg/libavutil/pixdesc.c",
    "../../FFmpeg/libavutil/pixelutils.c",
    "../../FFmpeg/libavutil/random_seed.c",
    "../../FFmpeg/libavutil/rational.c",
    "../../FFmpeg/libavutil/reverse.c",
    "../../FFmpeg/libavutil/rc4.c",
    "../../FFmpeg/libavutil/ripemd.c",
    "../../FFmpeg/libavutil/samplefmt.c",
    "../../FFmpeg/libavutil/sha.c",
    "../../FFmpeg/libavutil/sha512.c",
    "../../FFmpeg/libavutil/slicethread.c",
    "../../FFmpeg/libavutil/spherical.c",
    "../../FFmpeg/libavutil/stereo3d.c",
    "../../FFmpeg/libavutil/threadmessage.c",
    "../../FFmpeg/libavutil/time.c",
    "../../FFmpeg/libavutil/timecode.c",
    "../../FFmpeg/libavutil/tree.c",
    "../../FFmpeg/libavutil/twofish.c",
    "../../FFmpeg/libavutil/utils.c",
    "../../FFmpeg/libavutil/xga_font_data.c",
    "../../FFmpeg/libavutil/xtea.c",
    "../../FFmpeg/libavutil/tea.c",
    "../../FFmpeg/libavutil/tx.c",
    "../../FFmpeg/libavutil/tx_float.c",
    "../../FFmpeg/libavutil/tx_double.c",
    "../../FFmpeg/libavutil/tx_int32.c",
    "../../FFmpeg/libavutil/video_enc_params.c",
    "../../FFmpeg/libavutil/film_grain_params.c",
    "../../FFmpeg/libavutil/side_data.c",
    "../../FFmpeg/libavutil/refstruct.c",
    "../../FFmpeg/libavutil/container_fifo.c",
    "../../FFmpeg/libavutil/float_scalarproduct.c",
    "../../FFmpeg/libavutil/timecode_internal.c",
    "../../FFmpeg/libavutil/iamf.c",
    "../../FFmpeg/libavutil/timestamp.c",
  })

  -- libavutil/aarch64/Makefile:
  --   OBJS:
  filter({"platforms:Android-ARM64"})
  files({
    "../../FFmpeg/libavutil/aarch64/cpu.c",
    "../../FFmpeg/libavutil/aarch64/float_dsp_init.c",
    "../../FFmpeg/libavutil/aarch64/tx_float_init.c",
  })
  filter({})
  --   NEON-OBJS:
  filter({"platforms:Android-ARM64"})
  files({
    "../../FFmpeg/libavutil/aarch64/float_dsp_neon.S",
  })
  filter({})

  -- libavutil/x86/Makefile:
  --   OBJS:
  filter({"platforms:Android-x86_64 or platforms:Linux or platforms:Windows"})
  files({
    "../../FFmpeg/libavutil/x86/cpu.c",
    "../../FFmpeg/libavutil/x86/fixed_dsp_init.c",
    "../../FFmpeg/libavutil/x86/float_dsp_init.c",
    "../../FFmpeg/libavutil/x86/imgutils_init.c",
    "../../FFmpeg/libavutil/x86/lls_init.c",
    "../../FFmpeg/libavutil/x86/tx_float_init.c",
  })
  filter({})
