1+ vmaf_soname_version = vmaf_api_version_major + ' .0.0'
12vmaf_soversion = vmaf_api_version_major
23
34# Build libvmaf
@@ -8,6 +9,36 @@ cuda_dir = './cuda/'
89
910vmaf_base_include = include_directories (' ./' , ' ./feature/common' )
1011
12+ cc = meson .get_compiler(' c' )
13+
14+ # Arguments in test_args will be used even on feature tests
15+ test_args = []
16+ if host_machine .system() == ' linux' or host_machine .system() == ' windows' or host_machine .system() == ' cygwin'
17+ test_args += ' -D_GNU_SOURCE'
18+ add_project_arguments (' -D_GNU_SOURCE' , language : [' c' , ' cpp' ])
19+ elif host_machine .system() == ' darwin'
20+ test_args += ' -D_DARWIN_C_SOURCE'
21+ add_project_arguments (' -D_DARWIN_C_SOURCE' , language : [' c' , ' cpp' ])
22+ endif
23+
24+ # Header checks
25+ stdatomic_dependency = []
26+ if not cc.check_header(' stdatomic.h' )
27+ if cc.get_id() == ' msvc'
28+ # we have a custom replacement for MSVC
29+ stdatomic_dependency = declare_dependency (
30+ include_directories : include_directories (' src/compat/msvc' ),
31+ )
32+ elif cc.compiles(''' int main() { int v = 0; return __atomic_fetch_add(&v, 1, __ATOMIC_SEQ_CST); }''' ,
33+ name : ' GCC-style atomics' , args : test_args)
34+ stdatomic_dependency = declare_dependency (
35+ include_directories : include_directories (' src/compat/gcc' ),
36+ )
37+ else
38+ error (' Atomics not supported' )
39+ endif
40+ endif
41+
1142if cc.get_id() != ' msvc'
1243 vmaf_cflags_common = [
1344 ' -pedantic' ,
@@ -111,7 +142,7 @@ if is_asm_enabled
111142 depfile : ' @BASENAME@.obj.ndep' ,
112143 arguments : [
113144 ' -f' , nasm_format,
114- ' -I' , ' @0@/src/ ' .format(libvmaf_src_root ),
145+ ' -I' , ' @0@/' .format(meson .current_source_dir() ),
115146 ' -I' , ' @0@/' .format(meson .current_build_dir()),
116147 ' -MQ' , ' @OUTPUT@' , ' -MF' , ' @DEPFILE@' ,
117148 ' @EXTRA_ARGS@' ,
@@ -561,7 +592,7 @@ libvmaf = library(
561592 libvmaf_cpu_static_lib.extract_all_objects(recursive : true ),
562593 libsvm_static_lib.extract_all_objects(recursive : true ),
563594 ],
564- version : vmaf_soname_version,
595+ version : vmaf_soname_version,
565596 soversion : vmaf_soversion,
566597 install : true ,
567598)
0 commit comments