Add the option to use the VSI provider for the Verisilicon NPUs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9408>
85 lines
2.0 KiB
Meson
85 lines
2.0 KiB
Meson
onnx_sources = [
|
|
'gstonnx.c',
|
|
'gstonnxinference.cpp',
|
|
'gstonnxclient.cpp',
|
|
]
|
|
|
|
onnx_headers = [
|
|
'gstonnxinference.h',
|
|
'gstml.h',
|
|
'gstonnxclient.h',
|
|
]
|
|
|
|
doc_sources = []
|
|
foreach s: onnx_sources + onnx_headers
|
|
doc_sources += meson.current_source_dir() / s
|
|
endforeach
|
|
|
|
plugin_sources += {
|
|
'onnx': pathsep.join(doc_sources)
|
|
}
|
|
|
|
if get_option('onnx').disabled()
|
|
subdir_done()
|
|
endif
|
|
|
|
extra_args = []
|
|
extra_deps = []
|
|
extra_incs = []
|
|
|
|
onnxrt_dep = dependency('libonnxruntime', version : '>= 1.16.1',
|
|
required: false)
|
|
if not onnxrt_dep.found()
|
|
fsmod = import('fs')
|
|
sysroot = meson.get_external_property('sys_root', '/')
|
|
onnx_inc = join_paths(sysroot, 'usr/include/onnxruntime')
|
|
|
|
incs = []
|
|
if fsmod.is_dir(onnx_inc)
|
|
incs = [include_directories(onnx_inc)]
|
|
endif
|
|
|
|
onnxrt_dep = cxx.find_library('onnxruntime',
|
|
has_headers: 'onnxruntime_cxx_api.h',
|
|
header_include_directories: incs,
|
|
required: get_option('onnx'))
|
|
extra_incs += incs
|
|
endif
|
|
|
|
if not onnxrt_dep.found()
|
|
subdir_done()
|
|
endif
|
|
|
|
if gstcuda_dep.found()
|
|
extra_args += ['-DHAVE_CUDA']
|
|
extra_deps += [gstcuda_dep]
|
|
endif
|
|
|
|
if cxx.has_header('core/providers/cpu/cpu_provider_factory.h',
|
|
dependencies: onnxrt_dep,
|
|
include_directories: extra_incs)
|
|
extra_args += ['-DCPUPROVIDER_IN_SUBDIR']
|
|
endif
|
|
|
|
if cxx.has_function('OrtSessionOptionsAppendExecutionProvider_VSINPU',
|
|
dependencies: onnxrt_dep) and \
|
|
cxx.has_header('core/providers/vsinpu/vsinpu_provider_factory.h',
|
|
dependencies: onnxrt_dep,
|
|
include_directories: extra_incs)
|
|
message('Enabled VSI Onnx VSI NPU provider')
|
|
extra_args += ['-DHAVE_VSI_NPU']
|
|
endif
|
|
|
|
gstonnx = library('gstonnx',
|
|
onnx_sources,
|
|
c_args : gst_plugins_bad_args + extra_args,
|
|
cpp_args : gst_plugins_bad_args + extra_args,
|
|
link_args : noseh_link_args,
|
|
include_directories : [configinc, libsinc, cuda_stubinc] + extra_incs,
|
|
dependencies : [gstbase_dep, gstvideo_dep, gstanalytics_dep, onnxrt_dep,
|
|
libm] + extra_deps,
|
|
install : true,
|
|
install_dir : plugins_install_dir,
|
|
)
|
|
plugins += [gstonnx]
|