mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
build: reimplement the OSS checks using a more declarative approach
The OSS checks were a big mess and quite buggy. This reimplementes them using a declarative approach and clearly distinguishing between the various OSS implementations. The code should now almost be auto-documenting. We currently support the following implementations of OSS: * platform-specific (with `sys/soundcard.h`) * SunAudio (default on NetBSD and useable on OpenBSD even if we have sndio support there). * 4Front (default on FreeBSD) Since now each OSS check also checks for the appropriate soundcard header, remove the old soundcard check. Many thanks to @bugmen0t for in depth info about all the BSDs. Check #380 and #359 for more info on this commit.
This commit is contained in:
40
wscript
40
wscript
@@ -116,10 +116,6 @@ iconv support use --disable-iconv.",
|
||||
'desc': 'w32 priority API',
|
||||
'deps_any': [ 'os-win32', 'os-cygwin'],
|
||||
'func': check_true
|
||||
}, {
|
||||
'name': 'soundcard',
|
||||
'desc': 'soundcard.h',
|
||||
'func': check_headers('soundcard.h', 'sys/soundcard.h')
|
||||
}, {
|
||||
'name': 'videoio',
|
||||
'desc': 'videoio.h',
|
||||
@@ -386,10 +382,36 @@ audio_output_features = [
|
||||
'desc': 'SDL (1.x)',
|
||||
'deps_neg': [ 'sdl2' ],
|
||||
'func': check_pkg_config('sdl')
|
||||
}, {
|
||||
'name': 'oss-audio-native',
|
||||
'desc': 'OSS (platform-specific OSS implementation)',
|
||||
'func': check_cc(header_name='sys/soundcard.h',
|
||||
defines=['PATH_DEV_DSP="/dev/dsp"',
|
||||
'PATH_DEV_MIXER="/dev/mixer"'],
|
||||
fragment=load_fragment('oss_audio.c')),
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': 'oss-audio-sunaudio',
|
||||
'desc': 'OSS (emulation on top of SunAudio)',
|
||||
'func': check_cc(header_name='soundcard.h',
|
||||
lib='ossaudio',
|
||||
defines=['PATH_DEV_DSP="/dev/sound"',
|
||||
'PATH_DEV_MIXER="/dev/mixer"'],
|
||||
fragment=load_fragment('oss_audio_sunaudio.c')),
|
||||
'deps_neg': [ 'oss-audio-native' ],
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': 'oss-audio-4front',
|
||||
'desc': 'OSS (implementation from opensound.com)',
|
||||
'func': check_oss_4front,
|
||||
'deps_neg': [ 'oss-audio-native', 'oss-audio-sunaudio' ],
|
||||
'groups' : [ 'oss-audio' ]
|
||||
}, {
|
||||
'name': '--oss-audio',
|
||||
'desc': 'OSS audio output',
|
||||
'func': check_oss
|
||||
'func': check_true,
|
||||
'deps_any': [ 'oss-audio-native', 'oss-audio-sunaudio',
|
||||
'oss-audio-4front' ]
|
||||
}, {
|
||||
'name': '--audio-select',
|
||||
'desc': 'audio select()',
|
||||
@@ -772,6 +794,14 @@ def configure(ctx):
|
||||
|
||||
ctx.parse_dependencies(scripting_features)
|
||||
|
||||
ctx.define('HAVE_SYS_SOUNDCARD_H',
|
||||
'(HAVE_OSS_AUDIO_NATIVE || HAVE_OSS_AUDIO_4FRONT)',
|
||||
quote=False)
|
||||
|
||||
ctx.define('HAVE_SOUNDCARD_H',
|
||||
'HAVE_OSS_AUDIO_SUNAUDIO',
|
||||
quote=False)
|
||||
|
||||
ctx.load('generators.headers')
|
||||
|
||||
if not ctx.dependency_satisfied('build-date'):
|
||||
|
||||
Reference in New Issue
Block a user