gstreamer/subprojects/gst-devtools/dots-viewer/meson.build
Thibault Saunier 61159bd992 devtools: Add dots-viewer set of tools
This adds `gstdump` and `gst-dots-viewer` server, see the
README for more details about what those tools do.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7999>
2025-02-15 18:01:36 +00:00

58 lines
1.4 KiB
Meson

if not add_languages('rust', required: get_option('dots_viewer'))
subdir_done()
endif
rustc = meson.get_compiler('rust')
cargo = find_program('cargo', version:'>=1.40', required: get_option('dots_viewer'))
if not cargo.found()
subdir_done()
endif
cargo_wrapper = find_program('cargo_wrapper.py')
extra_env = {'RUSTC': ' '.join(rustc.cmd_array())}
system = host_machine.system()
exe_suffix = ''
if system == 'windows'
exe_suffix = '.exe'
endif
if get_option('debug')
target = 'debug'
else
target = 'release'
endif
# Extra env to pass to cargo
if get_option('default_library') == 'static'
extra_env += {
# Tell the pkg-config crate to think of all libraries as static
'PKG_CONFIG_ALL_STATIC': '1',
# Tell the system-deps crate to process linker flag for static deps
'SYSTEM_DEPS_LINK': 'static'
}
endif
foreach binname: ['gst-dots-viewer', 'gstdump']
custom_target(binname,
build_by_default: true,
output: binname + exe_suffix,
console: true,
install: true,
install_dir: get_option('bindir'),
depfile: binname + '.dep',
env: extra_env,
command: [cargo_wrapper,
'build',
meson.current_build_dir(),
meson.current_source_dir(),
meson.global_build_root(),
target,
get_option('prefix'),
get_option('libdir'),
'--depfile', '@DEPFILE@',
'--bin', binname,
'--exe-suffix', exe_suffix,
])
endforeach