diff --git a/meson.build b/meson.build index 65ee113..0c089fa 100644 --- a/meson.build +++ b/meson.build @@ -97,14 +97,21 @@ endforeach fftw3_dep = dependency('fftw3', version: '>= 3.0.0', required: false) samplerate_dep = dependency('samplerate', version: '>= 0.1.8', required: false) -sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: false) -vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: false) +if get_option('programs') + sndfile_dep = dependency('sndfile', version: '>= 1.0.16', required: false) +endif +if get_option('vamp') + vamp_dep = dependency('vamp-sdk', version: '>= 2.9', required: false) +endif thread_dep = dependency('threads') -have_ladspa = cpp.has_header('ladspa.h', args: extra_include_args) -have_jni = cpp.has_header('jni.h', args: extra_include_args) - -javac = find_program('javac', required: false) -jar = find_program('jar', required: false) +if get_option('ladspa') + have_ladspa = cpp.has_header('ladspa.h', args: extra_include_args) +endif +if get_option('jni') + have_jni = cpp.has_header('jni.h', args: extra_include_args) + javac = find_program('javac', required: false) + jar = find_program('jar', required: false) +endif # Check FFT and resampler options and set up dependencies and paths @@ -255,37 +262,41 @@ if ipp_needed endif endif # ipp_needed -if not vamp_dep.found() - vamp_dep = cpp.find_library('VampPluginSDK', - dirs: get_option('extra_lib_dirs'), - has_headers: ['vamp-sdk.h'], - header_args: extra_include_args, - required: false) +if get_option('vamp') if not vamp_dep.found() - vamp_dep = cpp.find_library('vamp-sdk', + vamp_dep = cpp.find_library('VampPluginSDK', dirs: get_option('extra_lib_dirs'), has_headers: ['vamp-sdk.h'], header_args: extra_include_args, required: false) + if not vamp_dep.found() + vamp_dep = cpp.find_library('vamp-sdk', + dirs: get_option('extra_lib_dirs'), + has_headers: ['vamp-sdk.h'], + header_args: extra_include_args, + required: false) + endif endif + have_vamp = true endif -have_vamp = vamp_dep.found() - -if not sndfile_dep.found() - sndfile_dep = cpp.find_library('sndfile', - dirs: get_option('extra_lib_dirs'), - has_headers: ['sndfile.h'], - header_args: extra_include_args, - required: false) + +if get_option('programs') if not sndfile_dep.found() - sndfile_dep = cpp.find_library('sndfile-1', + sndfile_dep = cpp.find_library('sndfile', dirs: get_option('extra_lib_dirs'), has_headers: ['sndfile.h'], header_args: extra_include_args, required: false) + if not sndfile_dep.found() + sndfile_dep = cpp.find_library('sndfile-1', + dirs: get_option('extra_lib_dirs'), + has_headers: ['sndfile.h'], + header_args: extra_include_args, + required: false) + endif endif + have_sndfile = true endif -have_sndfile = sndfile_dep.found() # General platform and compiler expectations @@ -386,8 +397,10 @@ endif # And the build targets: Static and dynamic libraries, command-line # utility, LADSPA plugin, Vamp plugin, JNI library -message('Will build Rubber Band Library static library') -target_summary += { 'Static library': [ true, 'Name: ' + rubberband_static_name ] } +if get_option('static') + message('Will build Rubber Band Library static library') + target_summary += { 'Static library': [ true, 'Name: ' + rubberband_static_name ] } +endif rubberband_static = static_library( rubberband_static_name, library_sources, @@ -425,7 +438,7 @@ else message('Not building Rubber Band Library dynamic library: no_shared option set') endif -if have_jni and javac.found() and jar.found() +if get_option('jni') target_summary += { 'JNI library': [ true, 'Name: ' + rubberband_jni_name ] } message('Will build Java Native Interface') rubberband_jni = shared_library( @@ -460,7 +473,7 @@ if have_jni and javac.found() and jar.found() ) else target_summary += { 'JNI library': false } - if not have_jni + if not get_option('jni') message('Not building Java Native Interface: jni.h header not found') else message('Not building Java Native Interface: Java compiler not found') @@ -474,7 +487,7 @@ install_headers( subdir: 'rubberband' ) -if have_ladspa +if get_option('ladspa') target_summary += { 'LADSPA plugin': [ true, 'Name: ' + rubberband_ladspa_name ] } message('Will build LADSPA plugin') rubberband_ladspa = shared_library( @@ -509,7 +522,7 @@ else message('Not building LADSPA plugin: ladspa.h header not found') endif -if have_vamp +if get_option('vamp') target_summary += { 'Vamp plugin': [ true, 'Name: ' + rubberband_vamp_name ] } message('Will build Vamp plugin') rubberband_vamp = shared_library( @@ -541,7 +554,7 @@ else message('Not building Vamp plugin: Vamp dependency not found') endif -if have_sndfile +if get_option('programs') target_summary += { 'Command-line utility': [ true, 'Name: ' + rubberband_program_name ] } message('Will build command-line utility') rubberband_program = executable( diff --git a/meson_options.txt b/meson_options.txt index 1703806..cd637f1 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -31,3 +31,22 @@ option('no_shared', value: 'false', description: 'Do not build shared libraries. On Windows this will also ensure that the static library is called simply rubberband.lib, not rubberband-static.lib as it is in the default build.') +option('jni', + type: 'boolean', + value: 'false') + +option('ladspa', + type: 'boolean', + value: 'false') + +option('programs', + type: 'boolean', + value: 'false') + +option('static', + type: 'boolean', + value: 'false') + +option('vamp', + type: 'boolean', + value: 'false')