1# standalone plugin meson configuration
2project('gst-svt-av1', 'c',
3  version : '0.1',
4  meson_version : '>= 0.29',
5  default_options : [ 'buildtype=debugoptimized' ])
6
7# standard gst-plugins-bad dependencies and configuration
8gst_req = '>= 1.13.1'
9gst_dep = dependency('gstreamer-1.0', version : gst_req,
10  fallback : ['gstreamer', 'gst_dep'])
11gstbase_dep = dependency('gstreamer-base-1.0', version : gst_req,
12  fallback : ['gstreamer', 'gstbase_dep'])
13gstvideo_dep = dependency('gstreamer-video-1.0', version : gst_req,
14  fallback : ['gstreamer', 'gstvideo_dep'])
15plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir'))
16
17# common meson configuration
18svtav1enc_dep = dependency('SvtAv1Enc')
19
20cc = meson.get_compiler('c')
21cc_flags = [
22    '-D_FORTIFY_SOURCE=2',
23    '-Wformat',
24    '-Wformat-security',
25    '-fPIE',
26    '-fPIC',
27    '-fstack-protector-strong',
28]
29foreach flag: cc_flags
30    if cc.has_argument(flag)
31        add_global_arguments(flag, language: 'c')
32    endif
33endforeach
34
35
36ldflags = [
37   '-Wl,-z,now',
38   '-Wl,-z,relro',
39   '-Wl,-z,noexecstack',
40]
41foreach lflag : ldflags
42    add_global_link_arguments(lflag, language : 'c')
43endforeach
44
45
46if svtav1enc_dep.found()
47    gstsvtav1enc = library('gstsvtav1enc',
48        'gstsvtav1enc.c',
49        dependencies: [gstbase_dep, gstvideo_dep, svtav1enc_dep],
50        install: true,
51        install_dir: plugins_install_dir,
52    )
53endif
54