Olivier Crête 40828d890b onnx: Add Verisilicon provider
Add the option to use the VSI provider for the Verisilicon NPUs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9408>
2025-07-31 18:09:19 +00:00

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]