FFmpeg/libffmpeg-avutil/buildfile
2024-07-08 06:42:45 +02:00

312 lines
20 KiB
Ruby

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
}