1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
project('ffmpeg', 'c', version: '7.0.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_minsize = get_option('buildtype') == 'minsize'
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', '--enable-small']
endif
extra_options += ['--cc=' + compiler.cmd_array()[0]]
extra_options += ['--nm=' + meson.get_external_property('nm', 'nm')]
extra_options += ['--ar=' + meson.get_external_property('ar', 'ar')]
if is_windows
if is_64bit
extra_options += ['--target-os=win64', '--arch=x86_64']
else
extra_options += ['--target-os=win32', '--arch=x86']
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,mp3float,aac,opus,alac,mjpeg,jpeg2000,h264,hevc,vp9'
decoders += ',pcm_f32be,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_f32le,pcm_s24be,pcm_s24le,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar'
#decoders += ',pcm_dvd,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'
#extra_options += ['--enable-zlib', '--enable-libsoxr']
extra_options += ['--enable-zlib']
decoders += ',png,apng'
demuxers += ',image_png_pipe'
parsers += ',png'
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-logging',
'--disable-shared',
'--disable-all',
'--disable-autodetect',
'--disable-everything',
'--disable-programs',
'--disable-doc',
'--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-nonfree',
'--enable-runtime-cpudetect',
'--enable-asm',
'--enable-inline-asm',
'--enable-x86asm',
'--enable-avutil',
'--enable-avformat',
'--enable-avcodec',
'--enable-swresample',
'--enable-swscale',
'--disable-indevs',
'--disable-outdevs',
'--enable-demuxer=' + demuxers,
'--enable-decoder=' + decoders,
'--enable-parser=' + parsers,
'--enable-bsf=' + bsfs,
extra_options,
],
cross_configure_options: ['--enable-cross-compile'],
verbose: true)
avutil = proj.dependency('avutil')
avformat = proj.dependency('avformat')
avcodec = proj.dependency('avcodec')
swresample = proj.dependency('swresample')
swscale = proj.dependency('swscale')
ffmpeg_inc_dep = declare_dependency(include_directories: include_directories('.', 'build/'))
|