load("//Config:buck_rule_macros.bzl", "static_library", "gen_header_targets", "merge_maps") ffmpeg_header_paths = [ "libavutil/hwcontext.h", "libavutil/time.h", "libavutil/hwcontext_cuda.h", "libavutil/intfloat.h", "libavutil/error.h", "libavutil/fifo.h", "libavutil/blowfish.h", "libavutil/hwcontext_mediacodec.h", "libavutil/replaygain.h", "libavutil/version.h", "libavutil/murmur3.h", "libavutil/stereo3d.h", "libavutil/samplefmt.h", "libavutil/pixdesc.h", "libavutil/base64.h", "libavutil/rational.h", "libavutil/sha.h", "libavutil/motion_vector.h", "libavutil/avconfig.h", "libavutil/lfg.h", "libavutil/avutil.h", "libavutil/xtea.h", "libavutil/crc.h", "libavutil/hwcontext_vdpau.h", "libavutil/frame.h", "libavutil/file.h", "libavutil/md5.h", "libavutil/cast5.h", "libavutil/hwcontext_vaapi.h", "libavutil/spherical.h", "libavutil/ffversion.h", "libavutil/audio_fifo.h", "libavutil/tree.h", "libavutil/threadmessage.h", "libavutil/attributes.h", "libavutil/adler32.h", "libavutil/hwcontext_d3d11va.h", "libavutil/timecode.h", "libavutil/sha512.h", "libavutil/hwcontext_dxva2.h", "libavutil/display.h", "libavutil/buffer.h", "libavutil/camellia.h", "libavutil/pixelutils.h", "libavutil/hwcontext_drm.h", "libavutil/common.h", "libavutil/hmac.h", "libavutil/eval.h", "libavutil/dict.h", "libavutil/random_seed.h", "libavutil/opt.h", "libavutil/mastering_display_metadata.h", "libavutil/log.h", "libavutil/aes.h", "libavutil/macros.h", "libavutil/bswap.h", "libavutil/rc4.h", "libavutil/tea.h", "libavutil/cpu.h", "libavutil/lzo.h", "libavutil/des.h", "libavutil/channel_layout.h", "libavutil/encryption_info.h", "libavutil/twofish.h", "libavutil/imgutils.h", "libavutil/hwcontext_videotoolbox.h", "libavutil/mem.h", "libavutil/parseutils.h", "libavutil/ripemd.h", "libavutil/bprint.h", "libavutil/hwcontext_qsv.h", "libavutil/pixfmt.h", "libavutil/aes_ctr.h", "libavutil/timestamp.h", "libavutil/downmix_info.h", "libavutil/avassert.h", "libavutil/hash.h", "libavutil/mathematics.h", "libavutil/intreadwrite.h", "libavutil/avstring.h", "libavformat/version.h", "libavformat/avio.h", "libavformat/avformat.h", "libavcodec/adts_parser.h", "libavcodec/avcodec.h", "libavcodec/version.h", "libavcodec/vdpau.h", "libavcodec/qsv.h", "libavcodec/vaapi.h", "libavcodec/videotoolbox.h", "libavcodec/xvmc.h", "libavcodec/mediacodec.h", "libavcodec/d3d11va.h", "libavcodec/avfft.h", "libavcodec/jni.h", "libavcodec/dirac.h", "libavcodec/avdct.h", "libavcodec/ac3_parser.h", "libavcodec/vorbis_parser.h", "libavcodec/dxva2.h", "libavcodec/dv_profile.h", "libswresample/version.h", "libswresample/swresample.h", ] library_archs = "arm64 armv7 x86_64" genrule( name = "libffmpeg_build", srcs = glob([ "Sources/FFMpeg/**/*", ], exclude = ["Sources/FFMpeg/**/.*"]), bash = "PATH=\"$PATH:$(location //third-party/yasm:yasm)/yasm-1.3.0/build\" " + "$SRCDIR/Sources/FFMpeg/build-ffmpeg-buck.sh release \"" + library_archs + "\" $OUT $SRCDIR/Sources/FFMpeg", out = "libffmpeg", visibility = [ "//submodules/ffmpeg:FFMpeg", "//submodules/ffmpeg:libffmpeg", ] ) ffmpeg_header_targets = gen_header_targets(ffmpeg_header_paths, "ffmpeg_header_", "", "libffmpeg_build", "FFmpeg-iOS/include") apple_library( name = "libffmpeg", visibility = [ "//submodules/ffmpeg:FFMpeg" ], header_namespace = "ffmpeg", exported_headers = ffmpeg_header_targets, linker_flags = [ "-L$(location :libffmpeg_build)/FFmpeg-iOS/lib", "-lavutil", "-lavcodec", "-lavformat", "-lswresample", "-lbz2", "-liconv", "-lz", ], exported_linker_flags = [ "-L$(location :libffmpeg_build)/FFmpeg-iOS/lib", "-lavutil", "-lavcodec", "-lavformat", "-lswresample", "-lbz2", "-liconv", "-lz", ], deps = [ ":libffmpeg_build", "//submodules/Opus:opus", ], ) static_library( name = "ffmpeg", exported_headers = merge_maps([ { "ffmpeg/ffmpeg.h": "PublicHeaders/ffmpeg/ffmpeg.h", }, ffmpeg_header_targets, ]), deps = [ ":libffmpeg_build", ":libffmpeg", "//submodules/Opus:opus", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", "$SDKROOT/System/Library/Frameworks/UIKit.framework", "$SDKROOT/System/Library/Frameworks/CoreMedia.framework", "$SDKROOT/System/Library/Frameworks/AVFoundation.framework", ], )