Automatic backend selection, and fix backend option parsing
python ''.split(',') returns an array with an empty string, it does not evaluate to false.
This commit is contained in:
parent
4a036a2daa
commit
34e68fe5e2
33
wscript
33
wscript
|
@ -751,8 +751,8 @@ def options(opt):
|
||||||
help='The user-visible name of the program being built')
|
help='The user-visible name of the program being built')
|
||||||
opt.add_option('--arch', type='string', action='store', dest='arch',
|
opt.add_option('--arch', type='string', action='store', dest='arch',
|
||||||
help='Architecture-specific compiler FLAGS')
|
help='Architecture-specific compiler FLAGS')
|
||||||
opt.add_option('--with-backends', type='string', action='store', default='jack', dest='with_backends',
|
opt.add_option('--with-backends', type='string', action='store', default='', dest='with_backends',
|
||||||
help='Specify which backend modules are to be included(jack,alsa,dummy,portaudio,coreaudio)')
|
help='Specify which backend modules are to be included(jack,alsa,dummy,portaudio,coreaudio,pulseaudio)')
|
||||||
opt.add_option('--backtrace', action='store_true', default=False, dest='backtrace',
|
opt.add_option('--backtrace', action='store_true', default=False, dest='backtrace',
|
||||||
help='Compile with -rdynamic -- allow obtaining backtraces from within Ardour')
|
help='Compile with -rdynamic -- allow obtaining backtraces from within Ardour')
|
||||||
opt.add_option('--no-carbon', action='store_true', default=False, dest='nocarbon',
|
opt.add_option('--no-carbon', action='store_true', default=False, dest='nocarbon',
|
||||||
|
@ -1256,12 +1256,25 @@ int main () { return 0; }
|
||||||
conf.env['NO_THREADED_WAVEVIEWS'] = True
|
conf.env['NO_THREADED_WAVEVIEWS'] = True
|
||||||
|
|
||||||
backends = opts.with_backends.split(',')
|
backends = opts.with_backends.split(',')
|
||||||
|
|
||||||
|
if backends == ['']:
|
||||||
|
backends = ['dummy']
|
||||||
|
autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.121.0', mandatory=False)
|
||||||
|
if conf.is_defined('HAVE_JACK'):
|
||||||
|
backends += ['jack']
|
||||||
|
if conf.is_defined('HAVE_PULSEAUDIO'):
|
||||||
|
backends += ['pulseaudio']
|
||||||
|
|
||||||
|
if re.search ("linux", sys.platform) != None and Options.options.dist_target != 'mingw':
|
||||||
|
backends += ['alsa']
|
||||||
|
if sys.platform == 'darwin':
|
||||||
|
backends += ['coreaudio']
|
||||||
|
if Options.options.dist_target == 'mingw':
|
||||||
|
backends += ['portaudio']
|
||||||
|
|
||||||
if opts.build_tests and 'dummy' not in backends:
|
if opts.build_tests and 'dummy' not in backends:
|
||||||
backends += ['dummy']
|
backends += ['dummy']
|
||||||
|
|
||||||
if not backends:
|
|
||||||
conf.fatal("Must configure and build at least one backend")
|
|
||||||
|
|
||||||
conf.env['BACKENDS'] = backends
|
conf.env['BACKENDS'] = backends
|
||||||
conf.env['BUILD_JACKBACKEND'] = any('jack' in b for b in backends)
|
conf.env['BUILD_JACKBACKEND'] = any('jack' in b for b in backends)
|
||||||
conf.env['BUILD_ALSABACKEND'] = any('alsa' in b for b in backends)
|
conf.env['BUILD_ALSABACKEND'] = any('alsa' in b for b in backends)
|
||||||
|
@ -1270,6 +1283,16 @@ int main () { return 0; }
|
||||||
conf.env['BUILD_CORECRAPPITA'] = any('coreaudio' in b for b in backends)
|
conf.env['BUILD_CORECRAPPITA'] = any('coreaudio' in b for b in backends)
|
||||||
conf.env['BUILD_PULSEAUDIO'] = any('pulseaudio' in b for b in backends)
|
conf.env['BUILD_PULSEAUDIO'] = any('pulseaudio' in b for b in backends)
|
||||||
|
|
||||||
|
if backends == [''] or not (
|
||||||
|
conf.env['BUILD_JACKBACKEND']
|
||||||
|
or conf.env['BUILD_ALSABACKEND']
|
||||||
|
or conf.env['BUILD_DUMMYBACKEND']
|
||||||
|
or conf.env['BUILD_PABACKEND']
|
||||||
|
or conf.env['BUILD_CORECRAPPITA']
|
||||||
|
or conf.env['BUILD_PULSEAUDIO']):
|
||||||
|
conf.fatal("Must configure and build at least one backend")
|
||||||
|
|
||||||
|
|
||||||
if (Options.options.use_lld):
|
if (Options.options.use_lld):
|
||||||
if re.search ("linux", sys.platform) != None and Options.options.dist_target != 'mingw' and conf.env['BUILD_PABACKEND']:
|
if re.search ("linux", sys.platform) != None and Options.options.dist_target != 'mingw' and conf.env['BUILD_PABACKEND']:
|
||||||
conf.fatal("lld is only for Linux builds")
|
conf.fatal("lld is only for Linux builds")
|
||||||
|
|
Loading…
Reference in New Issue