intf_libs = # Interface dependencies. impl_libs = # Implementation dependencies. #import _libs += libhello%lib{hello} # # # Unit tests. # lib{ffmpeg-avutil}: h{ \ ../config \ libavutil/avconfig \ libavutil/intmath \ libavutil/adler32 \ libavutil/aes \ libavutil/aes_ctr \ libavutil/ambient_viewing_environment \ libavutil/attributes \ libavutil/audio_fifo \ libavutil/avassert \ libavutil/avstring \ libavutil/avutil \ libavutil/base64 \ libavutil/blowfish \ libavutil/bprint \ libavutil/bswap \ libavutil/buffer \ libavutil/cast5 \ libavutil/camellia \ libavutil/channel_layout \ libavutil/common \ libavutil/cpu \ libavutil/crc \ libavutil/csp \ libavutil/des \ libavutil/detection_bbox \ libavutil/dict \ libavutil/display \ libavutil/dovi_meta \ libavutil/downmix_info \ libavutil/encryption_info \ libavutil/error \ libavutil/eval \ libavutil/executor \ libavutil/fifo \ libavutil/file \ libavutil/frame \ libavutil/hash \ libavutil/hdr_dynamic_metadata \ libavutil/hdr_dynamic_vivid_metadata \ libavutil/hmac \ libavutil/hwcontext \ libavutil/hwcontext_cuda \ libavutil/hwcontext_d3d11va \ libavutil/hwcontext_d3d12va \ libavutil/hwcontext_drm \ libavutil/hwcontext_dxva2 \ libavutil/hwcontext_qsv \ libavutil/hwcontext_mediacodec \ libavutil/hwcontext_opencl \ libavutil/hwcontext_vaapi \ libavutil/hwcontext_videotoolbox \ libavutil/hwcontext_vdpau \ libavutil/hwcontext_vulkan \ libavutil/iamf \ libavutil/imgutils \ libavutil/intfloat \ libavutil/intreadwrite \ libavutil/lfg \ libavutil/log \ libavutil/lzo \ libavutil/macros \ libavutil/mathematics \ libavutil/mastering_display_metadata \ libavutil/md5 \ libavutil/mem \ libavutil/motion_vector \ libavutil/murmur3 \ libavutil/opt \ libavutil/parseutils \ libavutil/pixdesc \ libavutil/pixelutils \ libavutil/pixfmt \ libavutil/random_seed \ libavutil/rc4 \ libavutil/rational \ libavutil/replaygain \ libavutil/ripemd \ libavutil/samplefmt \ libavutil/sha \ libavutil/sha512 \ libavutil/spherical \ libavutil/stereo3d \ libavutil/threadmessage \ libavutil/time \ libavutil/timecode \ libavutil/timestamp \ libavutil/tree \ libavutil/twofish \ libavutil/uuid \ libavutil/version \ libavutil/video_enc_params \ libavutil/xtea \ libavutil/tea \ libavutil/tx \ libavutil/film_grain_params \ libavutil/video_hint} \ c{libavutil/adler32 \ libavutil/x86/fixed_dsp_init \ libavutil/x86/float_dsp_init \ libavutil/x86/lls_init \ libavutil/x86/pixelutils_init \ libavutil/x86/imgutils_init \ libavutil/x86/cpu \ libavutil/aes \ libavutil/aes_ctr \ libavutil/ambient_viewing_environment \ libavutil/audio_fifo \ libavutil/avstring \ libavutil/avsscanf \ libavutil/base64 \ libavutil/blowfish \ libavutil/bprint \ libavutil/buffer \ libavutil/cast5 \ libavutil/camellia \ libavutil/channel_layout \ libavutil/cpu \ libavutil/crc \ libavutil/csp \ libavutil/des \ libavutil/detection_bbox \ libavutil/dict \ libavutil/display \ libavutil/dovi_meta \ libavutil/downmix_info \ libavutil/encryption_info \ libavutil/error \ libavutil/eval \ libavutil/executor \ libavutil/fifo \ libavutil/file \ libavutil/file_open \ libavutil/float_dsp \ libavutil/fixed_dsp \ libavutil/frame \ libavutil/hash \ libavutil/hdr_dynamic_metadata \ libavutil/hdr_dynamic_vivid_metadata \ libavutil/hmac \ libavutil/hwcontext \ libavutil/iamf \ libavutil/imgutils \ libavutil/integer \ libavutil/intmath \ libavutil/lfg \ libavutil/lls \ libavutil/log \ libavutil/log2_tab \ libavutil/lzo \ libavutil/mathematics \ libavutil/mastering_display_metadata \ libavutil/md5 \ libavutil/mem \ libavutil/murmur3 \ libavutil/opt \ libavutil/parseutils \ libavutil/pixdesc \ libavutil/pixelutils \ libavutil/random_seed \ libavutil/rational \ libavutil/reverse \ libavutil/rc4 \ libavutil/ripemd \ libavutil/samplefmt \ libavutil/sha \ libavutil/sha512 \ libavutil/slicethread \ libavutil/spherical \ libavutil/stereo3d \ libavutil/threadmessage \ libavutil/time \ libavutil/timecode \ libavutil/timestamp \ libavutil/tree \ libavutil/twofish \ libavutil/utils \ libavutil/xga_font_data \ libavutil/xtea \ libavutil/tea \ libavutil/tx \ libavutil/tx_float \ libavutil/tx_double \ libavutil/tx_int32 \ libavutil/uuid \ libavutil/version \ libavutil/video_enc_params \ libavutil/video_hint \ libavutil/film_grain_params} \ $impl_libs $intf_libs lib{ffmpeg-avutil}: c{hwcontext_cuda}: include = ($config.FFmpeg.CONFIG_CUDA == 1) lib{ffmpeg-avutil}: c{hwcontext_d3d11va}: include = ($config.FFmpeg.CONFIG_D3D11VA == 1) lib{ffmpeg-avutil}: c{hwcontext_d3d12va}: include = ($config.FFmpeg.CONFIG_D3D12VA == 1) lib{ffmpeg-avutil}: c{hwcontext_dxva2}: include = ($config.FFmpeg.CONFIG_DXVA2 == 1) lib{ffmpeg-avutil}: c{hwcontext_drm}: include = ($config.FFmpeg.CONFIG_LIBDRM == 1) lib{ffmpeg-avutil}: c{macos_kperf}: include = ($config.FFmpeg.CONFIG_MACOS_KPERF == 1) lib{ffmpeg-avutil}: c{hwcontext_mediacodec}: include = ($config.FFmpeg.CONFIG_MEDIACODEC == 1) lib{ffmpeg-avutil}: c{hwcontext_opencl}: include = ($config.FFmpeg.CONFIG_OPENCL == 1) lib{ffmpeg-avutil}: c{hwcontext_qsv}: include = ($config.FFmpeg.CONFIG_QSV == 1) lib{ffmpeg-avutil}: c{hwcontext_vaapi}: include = ($config.FFmpeg.CONFIG_VAAPI == 1) lib{ffmpeg-avutil}: c{hwcontext_videotoolbox}: include = ($config.FFmpeg.CONFIG_VIDEOTOOLBOX == 1) lib{ffmpeg-avutil}: c{hwcontext_vdpau}: include = ($config.FFmpeg.CONFIG_VDPAU == 1) lib{ffmpeg-avutil}: c{hwcontext_vulkan vulkan}: include = ($config.FFmpeg.CONFIG_VULKAN == 1) # Build options. # c.poptions =+ "-I$out_root" "-I$src_root" "-I$src_root/libffmpeg-avutil" "-I$src_root/libffmpeg-avutil/libavuti" c.coptions =+ -D_ISOC11_SOURCE c.coptions =+ -D_FILE_OFFSET_BITS=64 c.coptions =+ -D_LARGEFILE_SOURCE c.coptions =+ -D_POSIX_C_SOURCE=200112 c.coptions =+ -D_XOPEN_SOURCE=600 c.coptions =+ -DHAVE_AV_CONFIG_H c.coptions =+ -DBUILDING_avutil c.coptions =+ -std=c17 c.coptions =+ -fomit-frame-pointer c.coptions =+ -pthread c.coptions =+ -g c.coptions =+ -Wdeclaration-after-statement c.coptions =+ -Wall c.coptions =+ -Wdisabled-optimization c.coptions =+ -Wpointer-arith c.coptions =+ -Wredundant-decls c.coptions =+ -Wwrite-strings c.coptions =+ -Wtype-limits c.coptions =+ -Wundef c.coptions =+ -Wmissing-prototypes c.coptions =+ -Wstrict-prototypes c.coptions =+ -Wempty-body c.coptions =+ -Wno-parentheses c.coptions =+ -Wno-switch c.coptions =+ -Wno-format-zero-length c.coptions =+ -Wno-pointer-sign c.coptions =+ -Wno-unused-const-variable c.coptions =+ -Wno-bool-operation c.coptions =+ -Wno-char-subscripts c.coptions =+ -O3 c.coptions =+ -fno-math-errno c.coptions =+ -fno-signed-zeros c.coptions =+ -fno-tree-vectorize c.coptions =+ -Werror=format-security c.coptions =+ -Werror=implicit-function-declaration c.coptions =+ -Werror=missing-prototypes c.coptions =+ -Werror=return-type c.coptions =+ -Werror=vla c.coptions =+ -Wformat c.coptions =+ -fdiagnostics-color=auto c.coptions =+ -Wno-maybe-uninitialized #obja{*}: c.poptions += -DLIBFFMPEG_STATIC_BUILD #objs{*}: c.poptions += -DLIBFFMPEG_SHARED_BUILD # Export options. # lib{ffmpeg-avutil}: { c.libs += -lm c.export.poptions = "-I$out_root" "-I$src_root" c.export.libs = $intf_libs -lm } #liba{ffmpeg}: c.export.poptions += -DLIBFFMPEG_STATIC #libs{ffmpeg}: c.export.poptions += -DLIBFFMPEG_SHARED # For pre-releases use the complete version to make sure they cannot # be used in place of another pre-release or the final version. See # the version module for details on the version.* variable values. # if $version.pre_release lib{ffmpeg-avutil}: bin.lib.version = "-$version.project_id" else lib{ffmpeg-avutil}: bin.lib.version = "-$version.major.$version.minor" # Install into the libffmpeg/ subdirectory of, say, /usr/include/ # recreating subdirectories. # {h}{*}: { install = include/libffmpeg/ install.subdirs = true } #./: exe{libavutil/tests/*}: #{ # test = true # install = false #} for t: c{libavutil/tests/*...} { d = $directory($t) n = $name($t)... ./: $d/exe{$n}: $t $d/{h}{+$n} $d/testscript{+$n} $d/exe{$n}: lib{ffmpeg-avutil} $d/exe{$n}: test = true }