312 lines
20 KiB
Ruby
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
|
|
}
|