From f75518582598ec6044d8c43f97cafc28d5f1d9b5 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 23 Apr 2015 09:29:35 -0400 Subject: [PATCH] add a real check for functioning JACK metadata API; remove configure time option for this --- libs/backends/jack/jack_portengine.cc | 2 +- libs/backends/jack/weak_libjack.h | 4 ++-- libs/backends/jack/wscript | 17 +++++++++++++---- wscript | 4 +--- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/libs/backends/jack/jack_portengine.cc b/libs/backends/jack/jack_portengine.cc index caa962600b..1f0515b0e8 100644 --- a/libs/backends/jack/jack_portengine.cc +++ b/libs/backends/jack/jack_portengine.cc @@ -118,7 +118,7 @@ JACKAudioBackend::get_port_name (PortHandle port) const int JACKAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const { -#ifndef NO_JACK_METADATA // really everyone ought to have this by now. +#ifdef HAVE_JACK_METADATA // really everyone ought to have this by now. int rv = -1; char *cvalue = NULL; char *ctype = NULL; diff --git a/libs/backends/jack/weak_libjack.h b/libs/backends/jack/weak_libjack.h index e18687b6c7..abfe3af8a8 100644 --- a/libs/backends/jack/weak_libjack.h +++ b/libs/backends/jack/weak_libjack.h @@ -155,7 +155,7 @@ int have_libjack(void); #define jack_client_open WJACK_client_client_openXXX -#ifndef NO_JACK_METADATA +#ifdef HAVE_JACK_METADATA /* */ #define jack_get_uuid_for_client_name WJACK_get_uuid_for_client_name #define jack_get_client_name_by_uuid WJACK_get_client_name_by_uuid @@ -181,7 +181,7 @@ int have_libjack(void); #include #include -#ifndef NO_JACK_METADATA +#ifdef HAVE_JACK_METADATA #include #endif diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript index 752682f8cc..2f3b349afe 100644 --- a/libs/backends/jack/wscript +++ b/libs/backends/jack/wscript @@ -37,10 +37,15 @@ def configure(conf): else: conf.env['libjack_link'] = "link" - if not Options.options.libjack_meta: - conf.define ('NO_JACK_METADATA', 1) - - + # Check that metadata API is available and working + conf.check_cxx(fragment = "#include \n#include \nint main(void) { jack_port_uuid(NULL); return 0; }\n", + mandatory = False, + msg = 'Checking for JACK metadata API', + okmsg = 'ok', + errmsg = 'not found (or broken). JACK metadata API will not be used', + define_name = 'HAVE_JACK_METADATA', + linkflags=['-ljack']) + def build(bld): obj = bld(features = 'c cxx cxxshlib') obj.source = [ @@ -64,6 +69,10 @@ def build(bld): obj.cxxflags = [ '-fPIC' ] obj.cflags = [ '-fPIC' ] + if bld.is_defined ('HAVE_JACK_METADATA'): + obj.cxxflags += [ '-DHAVE_JACK_METADATA' ] + obj.cflags += [ '-DHAVE_JACK_METADATA' ] + if (bld.env['build_target'] == 'mingw'): obj.uselib = [ 'PORTAUDIO' ] else: diff --git a/wscript b/wscript index f9716d9998..6005f88d36 100644 --- a/wscript +++ b/wscript @@ -615,8 +615,6 @@ def options(opt): help='Compile for use with gprofile') opt.add_option('--libjack', type='string', default="auto", dest='libjack_link', help='libjack link mode [auto|link|weak]') - opt.add_option('--no-jack-metadata', action='store_false', default=True, dest='libjack_meta', - help='disable support for jack metadata') opt.add_option('--internal-shared-libs', action='store_true', default=True, dest='internal_shared_libs', help='Build internal libs as shared libraries') opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs', @@ -1059,7 +1057,7 @@ const char* const ardour_config_info = "\\n\\ write_config_text('Freedesktop files', opts.freedesktop) write_config_text('JACK Backend', conf.env['BUILD_JACKBACKEND']) write_config_text('Libjack linking', conf.env['libjack_link']) - write_config_text('Libjack metadata', not conf.is_defined('NO_JACK_METADATA')) + write_config_text('Libjack metadata', conf.is_defined ('HAVE_JACK_METADATA')) write_config_text('LV2 UI embedding', conf.is_defined('HAVE_SUIL')) write_config_text('LV2 support', conf.is_defined('LV2_SUPPORT')) write_config_text('LXVST support', conf.is_defined('LXVST_SUPPORT')) -- 2.30.2