gstreamer/subprojects/gst-plugins-base/tools/meson.build
Xavier Claessens 5f0493d33a meson: Set install_tag on some targets
Trying to follow recommendation from Meson documentation:
https://mesonbuild.com/Installing.html#installation-tags

Move tools into 'bin' or 'bin-devel' categories to keep only libs and
plugins in the default 'runtime' category. This simplifies distribution
of GStreamer application skipping parts that are not needed, similarly
to what Cerbero does by hardcoding huge list of files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3017>
2022-09-20 10:08:15 +00:00

64 lines
1.9 KiB
Meson

tool_deps = [pbutils_dep, audio_dep, video_dep, tag_dep, gst_dep, gst_base_dep, gmodule_dep]
extra_args = []
extra_deps = []
if host_system == 'windows'
# Check whether we're building for UWP apps, and if so, will not link winmm
# of which APIs are for WIN32 desktop
building_for_uwp = false
code = '''
#include <windows.h>
#if !(WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP))
#error "Not building for UWP"
#endif'''
if cc.compiles(code, name : 'building for UWP')
building_for_uwp = true
endif
if not building_for_uwp
winmm_lib = cc.find_library('winmm', required: false)
if winmm_lib.found() and cc.has_header('mmsystem.h')
extra_args += ['-DHAVE_WINMM']
extra_deps += [winmm_lib]
endif
endif
endif
gst_tools = {
'gst-device-monitor': {
'files': files('gst-device-monitor.c'),
'deps': tool_deps,
'man_page': files('gst-device-monitor-@0@.1'.format(api_version))
},
'gst-discoverer': {
'files': files('gst-discoverer.c'),
'deps': tool_deps,
'man_page': files('gst-discoverer-@0@.1'.format(api_version))
},
'gst-play': {
'files': files('gst-play.c', 'gst-play-kb.c'),
'deps': tool_deps + extra_deps,
'man_page': files('gst-play-@0@.1'.format(api_version)),
'extra_c_args': extra_args
},
}
if not get_option('tools').disabled()
foreach tool, data: gst_tools
exe_name = '@0@-@1@'.format(tool, api_version)
executable(exe_name,
data.get('files'),
install: true,
install_tag: 'bin',
include_directories : [configinc],
dependencies : data.get('deps'),
c_args: data.get('extra_c_args', []) + gst_plugins_base_args + ['-DG_LOG_DOMAIN="@0@"'.format(exe_name)],
)
if data.has_key('man_page')
install_man(data.get('man_page'))
endif
endforeach
endif