mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 21:28:45 +00:00
84 lines
2.3 KiB
Meson
84 lines
2.3 KiB
Meson
|
asio_sources = [
|
||
|
'gstasiodeviceprovider.cpp',
|
||
|
'gstasioobject.cpp',
|
||
|
'gstasioringbuffer.cpp',
|
||
|
'gstasiosink.cpp',
|
||
|
'gstasiosrc.cpp',
|
||
|
'gstasioutils.cpp',
|
||
|
'plugin.c',
|
||
|
]
|
||
|
|
||
|
asio_option = get_option('asio')
|
||
|
if asio_option.disabled() or host_system != 'windows'
|
||
|
subdir_done()
|
||
|
endif
|
||
|
|
||
|
# FIXME: non-msvc is not tested, and unlikely supported yet because of
|
||
|
# tool-chain issue
|
||
|
if cxx.get_id() != 'msvc'
|
||
|
if asio_option.enabled()
|
||
|
error('asio plugin can only be built with MSVC')
|
||
|
else
|
||
|
subdir_done ()
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
winapi_desktop = cxx.compiles('''#include <winapifamily.h>
|
||
|
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
||
|
#error "not win32"
|
||
|
#endif''',
|
||
|
name: 'building for Win32')
|
||
|
|
||
|
if not winapi_desktop
|
||
|
if asio_option.enabled()
|
||
|
error('asio plugin requires WINAPI_PARTITION_DESKTOP')
|
||
|
else
|
||
|
subdir_done ()
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
avrt_lib = cc.find_library('avrt', required: asio_option)
|
||
|
if not avrt_lib.found()
|
||
|
subdir_done ()
|
||
|
endif
|
||
|
|
||
|
winmm_lib = cc.find_library('winmm', required: asio_option)
|
||
|
if not winmm_lib.found()
|
||
|
subdir_done ()
|
||
|
endif
|
||
|
|
||
|
# Checking SDK headers. User should install ASIO sdk on system, and
|
||
|
# this plugin requires asio.h, asiosys.h and iasiodrv.h headers
|
||
|
asio_sdk_root = get_option ('asio-sdk-path')
|
||
|
if asio_sdk_root == ''
|
||
|
if asio_option.enabled()
|
||
|
error('asio sdk path is needed, pass with -Dasio-sdk-path=C:/path/to/sdk')
|
||
|
else
|
||
|
subdir_done ()
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
asio_inc_dir = include_directories(join_paths(asio_sdk_root, 'common'), is_system : true)
|
||
|
has_asio_header = cxx.has_header('asio.h', include_directories: asio_inc_dir)
|
||
|
has_asiosys_header = cxx.has_header('asiosys.h', include_directories: asio_inc_dir)
|
||
|
has_iasiodrv_header = cxx.has_header('iasiodrv.h', include_directories: asio_inc_dir)
|
||
|
if not has_asio_header or not has_asiosys_header or not has_iasiodrv_header
|
||
|
if asio_option.enabled()
|
||
|
error('Failed to find required SDK header(s)')
|
||
|
else
|
||
|
subdir_done ()
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
asio_deps = [gstaudio_dep, avrt_lib, winmm_lib]
|
||
|
|
||
|
gstasio = library('gstasio',
|
||
|
asio_sources,
|
||
|
include_directories : [configinc, asio_inc_dir],
|
||
|
dependencies : asio_deps,
|
||
|
c_args : gst_plugins_bad_args,
|
||
|
cpp_args : gst_plugins_bad_args,
|
||
|
install : true,
|
||
|
install_dir : plugins_install_dir)
|
||
|
pkgconfig.generate(gstasio, install_dir : plugins_pkgconfig_install_dir)
|
||
|
plugins += [gstasio]
|