diff options
| author | 2024-01-01 11:56:21 -0500 | |
|---|---|---|
| committer | 2024-01-01 11:56:21 -0500 | |
| commit | 2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e (patch) | |
| tree | f49bd49fb83ba5ef17994eeb264c9bdfc0791a95 /subprojects/packagefiles/ffmpeg | |
| parent | 130a0edc0405e53b45f8b2f8da0b94356480a644 (diff) | |
| download | camu-2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e.tar.gz camu-2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e.tar.bz2 camu-2c288fa1b6ecc26504717aa6b878dfe9fb5bca3e.zip | |
Add subprojects
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'subprojects/packagefiles/ffmpeg')
| -rw-r--r-- | subprojects/packagefiles/ffmpeg/meson.build | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build new file mode 100644 index 0000000..1466086 --- /dev/null +++ b/subprojects/packagefiles/ffmpeg/meson.build @@ -0,0 +1,120 @@ +project('ffmpeg', 'c', version: '6.1', meson_version: '>=0.57.0') + +compiler = meson.get_compiler('c') + +cpu = target_machine.cpu_family() +is_64bit = (cpu == 'x86_64' or cpu == 'aarch64') +is_debug = get_option('buildtype').startswith('debug') +is_windows = host_machine.system() == 'windows' +is_msvc = compiler.get_id() == 'msvc' or compiler.get_id() == 'clang-cl' +is_mingw = is_windows and not is_msvc + +extra_options = [] + +if not is_debug + extra_options += ['--disable-debug'] +endif + +extra_options += ['--cc=' + compiler.cmd_array()[0]] + +if is_windows + if is_64bit + extra_options += ['--target-os=win64', '--arch=x86_64'] + endif + if is_msvc + extra_options += ['--toolchain=msvc'] + endif +endif + +#'--extra-ldflags=-L/home/pizza/c/camu/build6/subprojects/libalabaster -l:libalabaster.a', +#'--malloc-prefix=al_', + +decoders = 'flac,mp3,aac,opus,alac,mjpeg,jpeg2000,h264,hevc,vp9' +#decoders += ',pcm_f32be,pcm_f32le,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_dvd,apng,mpegvideo,mpeg2video' +#decoders += ',ass,srt' + +demuxers = 'flac,mp3,aac,wav,image2,mjpeg,image2pipe,image_jpeg_pipe,matroska,mov' +#demuxers += ',mpegts,mpegtsraw,mpegps,mpegvideo' +#demuxers += ',ass,srt' + +parsers = 'mjpeg,jpeg2000' +#parsers += ',mpegaudio,mpegvideo,dvd_nav' + +if not is_windows or is_mingw + #extra_options += ['--enable-zlib', '--enable-libsoxr'] + extra_options += ['--enable-zlib'] + decoders += ',png' + demuxers += ',image_png_pipe' + parsers += ',png' +endif + +bsfs = 'extract_extradata,mp3_header_decompress' + +ext_proj = import('unstable-external_project') + +proj = ext_proj.add_project('configure', + configure_options: [ + '--prefix=@PREFIX@', + '--libdir=@PREFIX@@LIBDIR@', + '--incdir=@PREFIX@@INCLUDEDIR@', + '--enable-pic', + '--enable-static', + '--disable-shared', + '--disable-all', + '--disable-autodetect', + '--disable-everything', + '--disable-htmlpages', + '--disable-manpages', + '--disable-podpages', + '--disable-txtpages', + '--disable-vdpau', + '--disable-vaapi', + '--disable-bzlib', + '--disable-error-resilience', + '--disable-iconv', + '--disable-schannel', + '--disable-network', + '--disable-securetransport', + '--disable-sdl2', + '--disable-symver', + '--disable-faan', + '--disable-alsa', + '--disable-xlib', + '--disable-vulkan', + '--enable-runtime-cpudetect', + '--enable-asm', + '--enable-inline-asm', + '--enable-x86asm', + '--enable-avutil', + '--enable-avformat', + '--enable-avcodec', + '--enable-swresample', + '--enable-swscale', + '--enable-demuxer=' + demuxers, + '--enable-decoder=' + decoders, + '--enable-parser=' + parsers, + '--enable-bsf=' + bsfs, + extra_options, + ], verbose: true) + +inc = include_directories('.') + +if is_msvc + # TODO: FFmpeg patch to fix all libs coming out as .a. + avutil = proj.dependency('libavutil') + avformat = proj.dependency('libavformat') + avcodec = proj.dependency('libavcodec') + swresample = proj.dependency('libswresample') + swscale = proj.dependency('libswscale') +else + avutil = proj.dependency('avutil') + avformat = proj.dependency('avformat') + avcodec = proj.dependency('avcodec') + swresample = proj.dependency('swresample') + swscale = proj.dependency('swscale') + if is_64bit and is_windows + lib_dir = meson.project_build_root() + '/distlib64' + else + lib_dir = meson.project_build_root() + '/dist/usr/local/lib64' + endif +endif |