Skip to content

Commit a0d15a4

Browse files
committed
libvmaf/meson: build libsvm as separate static lib
1 parent 4f5e366 commit a0d15a4

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

libvmaf/src/meson.build

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,11 +499,23 @@ libvmaf_feature_static_lib = static_library(
499499
objects: common_cuda_objects
500500
)
501501

502+
libsvm_cpp_args = vmaf_cflags_common
503+
if meson.get_compiler('cpp').get_id() == 'clang' or meson.get_compiler('cpp').get_id() == 'apple-clang'
504+
libsvm_cpp_args += ['-U_LIBCPP_ENABLE_ASSERTIONS']
505+
endif
506+
507+
libsvm_static_lib = static_library(
508+
'libsvm',
509+
src_dir + 'svm.cpp',
510+
include_directories : [libvmaf_include, vmaf_include],
511+
dependencies : [thread_lib],
512+
cpp_args : libsvm_cpp_args,
513+
)
514+
502515
libvmaf_sources = [
503516
src_dir + 'libvmaf.c',
504517
src_dir + 'predict.c',
505518
src_dir + 'model.c',
506-
src_dir + 'svm.cpp',
507519
src_dir + 'picture.c',
508520
src_dir + 'mem.c',
509521
src_dir + 'output.c',
@@ -537,7 +549,6 @@ libvmaf = library(
537549
[libvmaf_sources, rev_target, json_model_c_sources],
538550
include_directories : [libvmaf_inc, vmaf_include],
539551
c_args : vmaf_cflags_common,
540-
cpp_args : vmaf_cflags_common,
541552
dependencies : [
542553
thread_lib,
543554
math_lib,
@@ -548,6 +559,7 @@ libvmaf = library(
548559
platform_specific_cpu_objects,
549560
libvmaf_feature_static_lib.extract_all_objects(recursive: true),
550561
libvmaf_cpu_static_lib.extract_all_objects(recursive: true),
562+
libsvm_static_lib.extract_all_objects(recursive: true),
551563
],
552564
version : vmaf_soname_version,
553565
soversion : vmaf_soversion,

libvmaf/test/meson.build

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ test_propagate_metadata = executable('test_propagate_metadata',
2323
)
2424

2525
test_feature_collector = executable('test_feature_collector',
26-
['test.c', 'test_feature_collector.c', '../src/log.c', '../src/predict.c', '../src/svm.cpp', '../src/metadata_handler.c'],
26+
['test.c', 'test_feature_collector.c', '../src/log.c', '../src/predict.c', '../src/metadata_handler.c'],
2727
include_directories : [libvmaf_inc, test_inc, include_directories('../src/feature/'), include_directories('../src')],
2828
link_with : get_option('default_library') == 'both' ? libvmaf.get_static_lib() : libvmaf,
29-
dependencies: cuda_dependency
29+
dependencies: cuda_dependency,
30+
objects : libsvm_static_lib.extract_all_objects(recursive: true),
3031
)
3132

3233
test_log = executable('test_log',
@@ -41,28 +42,28 @@ test_thread_pool = executable('test_thread_pool',
4142
)
4243

4344
test_model = executable('test_model',
44-
['test.c', 'test_model.c', '../src/dict.c', '../src/svm.cpp', '../src/pdjson.c', '../src/read_json_model.c', '../src/log.c', json_model_c_sources],
45+
['test.c', 'test_model.c', '../src/dict.c', '../src/pdjson.c', '../src/read_json_model.c', '../src/log.c', json_model_c_sources],
4546
include_directories : [libvmaf_inc, test_inc, include_directories('../src')],
4647
link_with : get_option('default_library') == 'both' ? libvmaf.get_static_lib() : libvmaf,
4748
c_args : [vmaf_cflags_common, '-DJSON_MODEL_PATH="'+join_paths(meson.project_source_root(), '../model/')+'"'],
48-
cpp_args : vmaf_cflags_common,
4949
dependencies : [thread_lib, cuda_dependency],
50+
objects : libsvm_static_lib.extract_all_objects(recursive: true),
5051
)
5152

5253
test_predict = executable('test_predict',
5354
['test.c', 'test_predict.c', '../src/dict.c', '../src/metadata_handler.c',
54-
'../src/feature/feature_collector.c', '../src/feature/alias.c', '../src/model.c', '../src/svm.cpp', '../src/log.c',
55+
'../src/feature/feature_collector.c', '../src/feature/alias.c', '../src/model.c', '../src/log.c',
5556
'../src/read_json_model.c', '../src/pdjson.c', json_model_c_sources, '../src/feature/feature_name.c', '../src/feature/feature_extractor.c',],
5657
include_directories : [libvmaf_inc, test_inc, include_directories('../src/')],
5758
link_with : get_option('default_library') == 'both' ? libvmaf.get_static_lib() : libvmaf,
5859
c_args : vmaf_cflags_common,
59-
cpp_args : vmaf_cflags_common,
6060
dependencies : [thread_lib, cuda_dependency],
61+
objects : libsvm_static_lib.extract_all_objects(recursive: true),
6162
)
6263

6364
test_feature_extractor = executable('test_feature_extractor',
6465
['test.c', 'test_feature_extractor.c', '../src/mem.c', '../src/picture.c', '../src/ref.c',
65-
'../src/dict.c', '../src/opt.c', '../src/log.c', '../src/predict.c', '../src/svm.cpp',
66+
'../src/dict.c', '../src/opt.c', '../src/log.c', '../src/predict.c',
6667
'../src/metadata_handler.c'],
6768
include_directories : [libvmaf_inc, test_inc, include_directories('../src/')],
6869
dependencies : [math_lib, stdatomic_dependency, thread_lib, cuda_dependency],
@@ -71,6 +72,7 @@ test_feature_extractor = executable('test_feature_extractor',
7172
platform_specific_cpu_objects,
7273
libvmaf_feature_static_lib.extract_all_objects(recursive: true),
7374
libvmaf_cpu_static_lib.extract_all_objects(recursive: true),
75+
libsvm_static_lib.extract_all_objects(recursive: true),
7476
]
7577
)
7678

0 commit comments

Comments
 (0)