2021-02-05 16:42:13 +00:00
project (
'Rubber Band Library' ,
'c' , 'cpp' ,
2021-03-08 13:51:10 +00:00
version : '1.9.1' ,
2021-02-10 11:09:50 +00:00
license : 'GPL-2.0-or-later' ,
2021-02-05 16:42:13 +00:00
default_options : [
2021-03-05 10:31:00 +00:00
# All Rubber Band code is actually C++98, but some compilers no
# longer support that
'cpp_std=c++14' ,
2021-02-05 16:42:13 +00:00
'buildtype=release' ,
'b_ndebug=if-release' ,
'b_lundef=true' ,
] ,
2021-02-09 12:06:07 +00:00
meson_version : '>= 0.53.0'
2021-02-05 16:42:13 +00:00
)
2021-03-08 13:51:10 +00:00
rubberband_dynamic_library_version = '2.1.3'
2021-02-05 16:42:13 +00:00
system = build_machine . system ( )
architecture = host_machine . cpu_family ( )
2021-02-09 10:16:02 +00:00
cpp = meson . get_compiler ( 'cpp' )
2021-02-05 16:42:13 +00:00
pkg = import ( 'pkgconfig' )
# Define the project source sets
public_headers = [
'rubberband/rubberband-c.h' ,
'rubberband/RubberBandStretcher.h' ,
]
library_sources = [
'src/rubberband-c.cpp' ,
'src/RubberBandStretcher.cpp' ,
'src/StretcherProcess.cpp' ,
'src/StretchCalculator.cpp' ,
'src/base/Profiler.cpp' ,
'src/dsp/AudioCurveCalculator.cpp' ,
'src/audiocurves/CompoundAudioCurve.cpp' ,
'src/audiocurves/SpectralDifferenceAudioCurve.cpp' ,
'src/audiocurves/HighFrequencyAudioCurve.cpp' ,
'src/audiocurves/SilentAudioCurve.cpp' ,
'src/audiocurves/ConstantAudioCurve.cpp' ,
'src/audiocurves/PercussiveAudioCurve.cpp' ,
'src/dsp/Resampler.cpp' ,
'src/dsp/FFT.cpp' ,
'src/system/Allocators.cpp' ,
'src/system/sysutils.cpp' ,
'src/system/Thread.cpp' ,
'src/StretcherChannelData.cpp' ,
'src/StretcherImpl.cpp' ,
]
jni_sources = [
'src/jni/RubberBandStretcherJNI.cpp' ,
]
java_sources = [
'com/breakfastquay/rubberband/RubberBandStretcher.java' ,
]
program_sources = [
'main/main.cpp' ,
]
2021-02-09 11:12:20 +00:00
if system == 'windows'
program_sources + = [
'src/getopt/getopt.c' ,
'src/getopt/getopt_long.c'
]
endif
2021-02-05 16:42:13 +00:00
vamp_sources = [
'vamp/RubberBandVampPlugin.cpp' ,
'vamp/libmain.cpp' ,
]
ladspa_sources = [
'ladspa/RubberBandPitchShifter.cpp' ,
'ladspa/libmain.cpp' ,
]
general_include_dirs = [
'rubberband' ,
'src' ,
]
# Scan for any dependencies we may use later; all are optional
2021-03-12 09:52:54 +00:00
extra_include_args = [ ]
foreach d : get_option ( 'extra_include_dirs' )
extra_include_args + = [ '-I' + d ]
endforeach
2021-02-05 16:42:13 +00:00
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 )
thread_dep = dependency ( 'threads' )
2021-03-12 09:52:54 +00:00
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' )
jar = find_program ( 'jar' )
2021-02-05 16:42:13 +00:00
# Check FFT and resampler options and set up dependencies and paths
feature_dependencies = [ ]
feature_defines = [ ]
feature_libraries = [ ]
feature_sources = [ ]
pkgconfig_requirements = [ ]
2021-02-05 17:08:17 +00:00
arch_flags = [ ]
2021-02-05 16:42:13 +00:00
2021-02-10 11:28:05 +00:00
config_summary = { }
target_summary = { }
2021-02-05 16:42:13 +00:00
resampler = get_option ( 'resampler' )
fft = get_option ( 'fft' )
ipp_path = get_option ( 'ipp_path' )
2021-02-09 11:12:20 +00:00
ipp_needed = false
2021-02-05 16:42:13 +00:00
if fft == 'auto'
if system == 'darwin'
fft = 'vdsp'
else
fft = 'kissfft'
endif
endif
if resampler == 'auto'
if samplerate_dep . found ( )
resampler = 'libsamplerate'
else
resampler = 'speex'
endif
endif
if fft == 'kissfft'
2021-02-10 11:28:05 +00:00
config_summary + = { 'FFT' : 'KissFFT' }
2021-02-05 16:42:13 +00:00
message ( 'For FFT: using KissFFT' )
if fftw3_dep . found ( )
message ( '(to use FFTW instead, reconfigure with -Dfft=fftw)' )
endif
feature_sources + = [ 'src/kissfft/kiss_fft.c' , 'src/kissfft/kiss_fftr.c' ]
feature_defines + = [ '-DUSE_KISSFFT' ]
elif fft == 'fftw'
if fftw3_dep . found ( )
2021-02-10 11:28:05 +00:00
config_summary + = { 'FFT' : 'FFTW' }
2021-02-05 16:42:13 +00:00
message ( 'For FFT: using FFTW' )
2021-02-09 11:12:20 +00:00
pkgconfig_requirements + = fftw3_dep
2021-02-05 16:42:13 +00:00
else
2021-02-09 11:12:20 +00:00
fftw_dep = cpp . find_library ( 'fftw3' ,
2021-03-05 10:33:27 +00:00
dirs : get_option ( 'extra_lib_dirs' ) ,
has_headers : [ 'fftw3.h' ] ,
header_args : extra_include_args ,
required : true )
2021-02-05 16:42:13 +00:00
endif
feature_dependencies + = fftw3_dep
feature_defines + = [ '-DHAVE_FFTW3' , '-DFFTW_DOUBLE_ONLY' ]
elif fft == 'vdsp'
2021-02-10 11:28:05 +00:00
config_summary + = { 'FFT' : 'vDSP' }
2021-02-05 16:42:13 +00:00
message ( 'For FFT: using vDSP' )
feature_defines + = [ '-DHAVE_VDSP' ]
feature_libraries + = [ '-framework' , 'Accelerate' ]
elif fft == 'ipp'
if ipp_path != ''
2021-02-10 11:28:05 +00:00
config_summary + = { 'FFT' : 'Intel IPP' }
2021-02-05 17:28:20 +00:00
message ( 'For FFT: using IPP' )
2021-02-05 16:42:13 +00:00
message ( 'IPP path defined as ' + ipp_path )
else
error ( 'For FFT: IPP selected, but ipp_path not specified' )
endif
ipp_needed = true
else
error ( 'Unknown or unsupported FFT option: ' + fft )
endif # fft
if resampler == 'libsamplerate'
if samplerate_dep . found ( )
2021-02-10 11:28:05 +00:00
config_summary + = { 'Resampler' : 'libsamplerate' }
2021-02-05 16:42:13 +00:00
message ( 'For resampler: using libsamplerate' )
2021-02-09 11:12:20 +00:00
pkgconfig_requirements + = samplerate_dep
2021-02-05 16:42:13 +00:00
else
2021-02-09 11:12:20 +00:00
samplerate_dep = cpp . find_library ( 'samplerate' ,
2021-03-05 10:33:27 +00:00
dirs : get_option ( 'extra_lib_dirs' ) ,
has_headers : [ 'samplerate.h' ] ,
header_args : extra_include_args ,
required : true )
2021-02-05 16:42:13 +00:00
endif
feature_dependencies + = samplerate_dep
feature_defines + = [ '-DHAVE_LIBSAMPLERATE' ]
elif resampler == 'speex'
2021-02-10 11:28:05 +00:00
config_summary + = { 'Resampler' : 'Speex' }
2021-02-05 17:28:20 +00:00
message ( 'For resampler: using Speex' )
2021-02-05 16:42:13 +00:00
message ( '(consider libsamplerate if time-varying pitch shift is required)' )
feature_sources + = [ 'src/speex/resample.c' ]
feature_defines + = [ '-DUSE_SPEEX' ]
elif resampler == 'ipp'
if ipp_path != ''
2021-02-10 11:28:05 +00:00
config_summary + = { 'Resampler' : 'Intel IPP' }
2021-02-05 17:28:20 +00:00
message ( 'For resampler: using IPP' )
2021-02-05 16:42:13 +00:00
message ( '(consider libsamplerate if time-varying pitch shift is required)' )
message ( 'IPP path defined as ' + ipp_path )
else
error ( 'For resampler: IPP selected, but ipp_path not specified' )
endif
ipp_needed = true
else
error ( 'Unknown or unsupported resampler option: ' + resampler )
endif # resampler
if ipp_needed
feature_defines + = [
'-DHAVE_IPP' ,
'-DUSE_IPP_STATIC' ,
'-I' + ipp_path / 'include'
]
if architecture == 'x86'
feature_libraries + = [
'-L' + ipp_path / 'lib/ia32' ,
]
elif architecture == 'x86_64'
feature_libraries + = [
'-L' + ipp_path / 'lib/intel64' ,
]
else
error ( 'IPP is not supported for this architecture' )
endif
if system == 'windows'
feature_libraries + = [
'-lippsmt' , '-lippvmmt' , '-lippcoremt' ,
]
elif system == 'linux'
feature_libraries + = [
'-Wl,-Bstatic' , '-lipps' , '-lippvm' , '-lippcore' , '-Wl,-Bdynamic' ,
]
else
feature_libraries + = [
'-lipps' , '-lippvm' , '-lippcore' ,
]
endif
endif # ipp_needed
2021-02-09 11:12:20 +00:00
if not vamp_dep . found ( )
vamp_dep = cpp . find_library ( 'VampPluginSDK' ,
2021-03-05 10:33:27 +00:00
dirs : get_option ( 'extra_lib_dirs' ) ,
has_headers : [ 'vamp-sdk.h' ] ,
header_args : extra_include_args ,
required : false )
2021-02-09 11:12:20 +00:00
if not vamp_dep . found ( )
vamp_dep = cpp . find_library ( 'vamp-sdk' ,
2021-03-05 10:33:27 +00:00
dirs : get_option ( 'extra_lib_dirs' ) ,
has_headers : [ 'vamp-sdk.h' ] ,
header_args : extra_include_args ,
required : false )
2021-02-09 11:12:20 +00:00
endif
endif
have_vamp = vamp_dep . found ( )
if not sndfile_dep . found ( )
sndfile_dep = cpp . find_library ( 'sndfile' ,
2021-03-05 10:33:27 +00:00
dirs : get_option ( 'extra_lib_dirs' ) ,
has_headers : [ 'sndfile.h' ] ,
header_args : extra_include_args ,
required : false )
2021-03-05 10:31:00 +00:00
if not sndfile_dep . found ( )
sndfile_dep = cpp . find_library ( 'sndfile-1' ,
2021-03-05 10:33:27 +00:00
dirs : get_option ( 'extra_lib_dirs' ) ,
has_headers : [ 'sndfile.h' ] ,
header_args : extra_include_args ,
required : false )
2021-03-05 10:31:00 +00:00
endif
2021-02-09 11:12:20 +00:00
endif
have_sndfile = sndfile_dep . found ( )
2021-02-05 16:42:13 +00:00
# General platform and compiler expectations
ladspa_symbol_args = [ ]
vamp_symbol_args = [ ]
if get_option ( 'buildtype' ) . startswith ( 'release' )
2021-02-10 11:28:05 +00:00
config_summary + = { 'Build type' : 'Release' }
2021-02-05 16:42:13 +00:00
feature_defines + = [ '-DNO_THREAD_CHECKS' , '-DNO_TIMING' , '-DNDEBUG' ]
2021-02-10 11:28:05 +00:00
else
config_summary + = { 'Build type' : 'Debug' }
2021-02-05 16:42:13 +00:00
endif
if system == 'darwin'
feature_defines + = [ '-DUSE_PTHREADS' , '-DMALLOC_IS_ALIGNED' ]
ladspa_symbol_args + = [
'-exported_symbols_list' , meson . source_root ( ) / 'ladspa/ladspa-plugin.list'
]
vamp_symbol_args + = [
'-exported_symbols_list' , meson . source_root ( ) / 'vamp/vamp-plugin.list'
]
2021-02-10 14:24:17 +00:00
have_version_min = false
foreach arg : get_option ( 'cpp_args' )
if arg . contains ( 'version-min' )
have_version_min = true
endif
endforeach
2021-02-05 17:08:17 +00:00
if architecture == 'aarch64'
2021-02-10 14:24:17 +00:00
mac_platform_arguments = [
'-arch' , 'arm64' ,
2021-02-05 17:08:17 +00:00
]
2021-02-10 14:24:17 +00:00
if not have_version_min
mac_platform_arguments + = [ '-mmacosx-version-min=11' ]
endif
2021-02-05 17:08:17 +00:00
elif architecture == 'x86_64'
2021-02-10 14:24:17 +00:00
mac_platform_arguments = [
2021-02-05 17:08:17 +00:00
'-arch' , 'x86_64' ,
]
2021-02-10 14:24:17 +00:00
if not have_version_min
mac_platform_arguments + = [ '-mmacosx-version-min=10.13' ]
endif
else # begin architecture != 'aarch64' or 'x86_64'
error ( 'Build for architecture ' + architecture + ' is not supported on this platform' )
endif # end architecture
2021-02-05 17:08:17 +00:00
2021-02-05 16:42:13 +00:00
elif system == 'windows'
2021-03-05 10:31:00 +00:00
feature_defines + = [ '-D_WIN32' , '-DNOMINMAX' , '-D_USE_MATH_DEFINES' , '-DGETOPT_API=' ]
2021-02-09 10:16:02 +00:00
if cpp . get_id ( ) == 'msvc'
2021-02-05 16:42:13 +00:00
ladspa_symbol_args + = [ '-EXPORT:ladspa_descriptor' ]
vamp_symbol_args + = [ '-EXPORT:vampGetPluginDescriptor' ]
endif
2021-02-05 17:08:17 +00:00
else # system not darwin or windows
2021-02-05 16:42:13 +00:00
feature_defines + = [ '-DUSE_PTHREADS' , '-DHAVE_POSIX_MEMALIGN' ]
ladspa_symbol_args + = [
'-Wl,--version-script=' + meson . source_root ( ) / 'ladspa/ladspa-plugin.map'
]
vamp_symbol_args + = [
'-Wl,--version-script=' + meson . source_root ( ) / 'vamp/vamp-plugin.map'
]
2021-02-05 17:08:17 +00:00
endif # system
2021-02-05 16:42:13 +00:00
2021-02-09 11:12:20 +00:00
general_include_dirs + = get_option ( 'extra_include_dirs' )
general_compile_args = [ arch_flags , feature_defines ]
general_dependencies = [ feature_dependencies , thread_dep ]
if system == 'windows'
if get_option ( 'no_shared' )
rubberband_static_name = 'rubberband'
else
rubberband_static_name = 'rubberband-static'
endif
rubberband_dynamic_name = 'rubberband'
rubberband_program_name = 'rubberband-program'
2021-02-10 11:28:05 +00:00
rubberband_ladspa_name = 'ladspa-rubberband'
rubberband_vamp_name = 'vamp-rubberband'
2021-03-12 09:52:54 +00:00
rubberband_jni_name = 'rubberband-jni'
2021-02-09 11:12:20 +00:00
# Meson likes libxxx.a even on Windows, and so might we for a
# new library, but not here
platform_static_name_prefix = ''
platform_static_name_suffix = 'lib'
else
rubberband_static_name = 'rubberband'
rubberband_dynamic_name = 'rubberband'
rubberband_program_name = 'rubberband'
2021-02-10 11:28:05 +00:00
rubberband_ladspa_name = 'ladspa-rubberband'
rubberband_vamp_name = 'vamp-rubberband'
2021-03-12 09:52:54 +00:00
rubberband_jni_name = 'rubberband-jni'
2021-02-09 12:13:09 +00:00
platform_static_name_prefix = 'lib'
platform_static_name_suffix = 'a'
2021-02-09 11:12:20 +00:00
endif
2021-02-05 16:42:13 +00:00
# And the build targets: Static and dynamic libraries, command-line
2021-03-12 09:52:54 +00:00
# utility, LADSPA plugin, Vamp plugin, JNI library
2021-02-05 16:42:13 +00:00
message ( 'Will build Rubber Band Library static library' )
2021-02-10 11:28:05 +00:00
target_summary + = { 'Static library' : [ true , 'Name: ' + rubberband_static_name ] }
2021-02-05 16:42:13 +00:00
rubberband_static = static_library (
2021-02-09 11:12:20 +00:00
rubberband_static_name ,
2021-02-05 16:42:13 +00:00
library_sources ,
feature_sources ,
2021-02-09 11:12:20 +00:00
include_directories : general_include_dirs ,
cpp_args : general_compile_args ,
c_args : general_compile_args ,
dependencies : general_dependencies ,
2021-02-05 17:28:20 +00:00
name_prefix : platform_static_name_prefix ,
name_suffix : platform_static_name_suffix ,
2021-02-05 16:42:13 +00:00
pic : true ,
install : true ,
)
rubberband_static_dep = declare_dependency (
link_with : rubberband_static ,
)
2021-02-09 11:12:20 +00:00
if not get_option ( 'no_shared' )
2021-02-10 11:28:05 +00:00
target_summary + = { 'Shared library' : [ true , 'Name: ' + rubberband_dynamic_name ] }
message ( 'Will build Rubber Band Library shared library' )
2021-02-09 11:12:20 +00:00
rubberband_dynamic = shared_library (
rubberband_dynamic_name ,
objects : rubberband_static . extract_all_objects ( ) ,
link_args : [
arch_flags ,
feature_libraries ,
] ,
dependencies : general_dependencies ,
version : rubberband_dynamic_library_version ,
install : true ,
)
else
2021-02-10 11:28:05 +00:00
target_summary + = { 'Shared library' : false }
2021-02-09 11:12:20 +00:00
message ( 'Not building Rubber Band Library dynamic library: no_shared option set' )
endif
2021-02-05 16:42:13 +00:00
2021-03-12 09:52:54 +00:00
if have_jni and javac . found ( ) and jar . found ( )
target_summary + = { 'JNI library' : [ true , 'Name: ' + rubberband_jni_name ] }
message ( 'Will build Java Native Interface' )
rubberband_jni = shared_library (
rubberband_jni_name ,
jni_sources ,
include_directories : general_include_dirs ,
cpp_args : general_compile_args ,
c_args : general_compile_args ,
link_args : [
arch_flags ,
feature_libraries ,
] ,
dependencies : [
rubberband_static_dep ,
general_dependencies ,
] ,
# NB the JNI library is not versioned
install : true ,
)
rubberband_class = custom_target (
'rubberband_class' ,
input : 'com/breakfastquay/rubberband/RubberBandStretcher.java' ,
output : 'RubberBandStretcher.class' ,
command : [ javac , '@INPUT@' , '-d' , '@OUTDIR@' ] ,
)
rubberband_jar = custom_target (
'rubberband_jar' ,
input : rubberband_class ,
output : 'rubberband.jar' ,
command : [ jar , 'cvf' , '@OUTPUT@' , 'com/breakfastquay/rubberband/@INPUT@' ] ,
build_by_default : true ,
)
else
target_summary + = { 'JNI library' : false }
if not have_jni
message ( 'Not building Java Native Interface: jni.h header not found' )
else
message ( 'Not building Java Native Interface: Java compiler not found' )
endif
endif
2021-03-10 08:06:45 +00:00
install_headers (
[ 'rubberband/RubberBandStretcher.h' ,
'rubberband/rubberband-c.h'
] ,
subdir : 'rubberband'
)
2021-02-05 16:42:13 +00:00
if have_ladspa
2021-02-10 11:28:05 +00:00
target_summary + = { 'LADSPA plugin' : [ true , 'Name: ' + rubberband_ladspa_name ] }
2021-02-05 16:42:13 +00:00
message ( 'Will build LADSPA plugin' )
rubberband_ladspa = shared_library (
2021-02-10 11:28:05 +00:00
rubberband_ladspa_name ,
2021-02-05 16:42:13 +00:00
ladspa_sources ,
2021-02-09 11:12:20 +00:00
include_directories : general_include_dirs ,
cpp_args : general_compile_args ,
c_args : general_compile_args ,
2021-02-05 16:42:13 +00:00
link_args : [
2021-02-05 17:08:17 +00:00
arch_flags ,
2021-02-05 16:42:13 +00:00
feature_libraries ,
ladspa_symbol_args ,
] ,
dependencies : [
rubberband_static_dep ,
2021-02-09 11:12:20 +00:00
general_dependencies ,
2021-02-05 16:42:13 +00:00
] ,
name_prefix : '' ,
install : true ,
install_dir : get_option ( 'libdir' ) / 'ladspa' ,
)
install_data (
'ladspa/ladspa-rubberband.cat' ,
install_dir : get_option ( 'libdir' ) / 'ladspa' ,
)
install_data (
'ladspa/ladspa-rubberband.rdf' ,
install_dir : get_option ( 'datadir' ) / 'ladspa/rdf' ,
)
else
2021-02-10 11:28:05 +00:00
target_summary + = { 'LADSPA plugin' : false }
2021-02-05 16:42:13 +00:00
message ( 'Not building LADSPA plugin: ladspa.h header not found' )
endif
2021-02-09 11:12:20 +00:00
if have_vamp
2021-02-10 11:28:05 +00:00
target_summary + = { 'Vamp plugin' : [ true , 'Name: ' + rubberband_vamp_name ] }
2021-02-05 16:42:13 +00:00
message ( 'Will build Vamp plugin' )
rubberband_vamp = shared_library (
2021-02-10 11:28:05 +00:00
rubberband_vamp_name ,
2021-02-05 16:42:13 +00:00
vamp_sources ,
2021-02-09 11:12:20 +00:00
include_directories : general_include_dirs ,
cpp_args : general_compile_args ,
c_args : general_compile_args ,
2021-02-05 16:42:13 +00:00
link_args : [
2021-02-05 17:08:17 +00:00
arch_flags ,
2021-02-05 16:42:13 +00:00
feature_libraries ,
vamp_symbol_args ,
] ,
dependencies : [
rubberband_static_dep ,
2021-02-09 11:12:20 +00:00
general_dependencies ,
2021-02-05 16:42:13 +00:00
vamp_dep ,
] ,
name_prefix : '' ,
install : true ,
install_dir : get_option ( 'libdir' ) / 'vamp' ,
)
install_data (
'vamp/vamp-rubberband.cat' ,
install_dir : get_option ( 'libdir' ) / 'vamp' ,
)
else
2021-02-10 11:28:05 +00:00
target_summary + = { 'Vamp plugin' : false }
2021-02-05 16:42:13 +00:00
message ( 'Not building Vamp plugin: Vamp dependency not found' )
endif
2021-02-09 11:12:20 +00:00
if have_sndfile
2021-02-10 11:28:05 +00:00
target_summary + = { 'Command-line utility' : [ true , 'Name: ' + rubberband_program_name ] }
2021-02-05 16:42:13 +00:00
message ( 'Will build command-line utility' )
rubberband_program = executable (
2021-02-09 11:12:20 +00:00
rubberband_program_name ,
2021-02-05 16:42:13 +00:00
program_sources ,
2021-02-09 11:12:20 +00:00
include_directories : general_include_dirs ,
cpp_args : general_compile_args ,
c_args : general_compile_args ,
2021-02-05 16:42:13 +00:00
link_args : [
2021-02-05 17:08:17 +00:00
arch_flags ,
2021-02-05 16:42:13 +00:00
feature_libraries ,
] ,
dependencies : [
rubberband_static_dep ,
2021-02-09 11:12:20 +00:00
general_dependencies ,
2021-02-05 16:42:13 +00:00
sndfile_dep ,
] ,
install : true ,
)
else
2021-02-10 11:28:05 +00:00
target_summary + = { 'Command-line utility' : false }
2021-02-09 10:16:02 +00:00
message ( 'Not building command-line utility: libsndfile dependency not found' )
2021-02-05 16:42:13 +00:00
endif
pkg . generate (
name : 'rubberband' ,
description : 'Audio time-stretching and pitch-shifting library' ,
url : 'https://breakfastquay.com/rubberband/' ,
version : meson . project_version ( ) ,
requires : pkgconfig_requirements ,
libraries : '-L${libdir} -lrubberband' ,
extra_cflags : '-I${includedir}' ,
)
2021-02-10 11:28:05 +00:00
summary ( { 'prefix' : get_option ( 'prefix' ) ,
'bindir' : get_option ( 'bindir' ) ,
'libdir' : get_option ( 'libdir' ) ,
'datadir' : get_option ( 'datadir' ) ,
} , section : 'Directories' )
2021-02-10 14:24:17 +00:00
summary ( config_summary + { 'Architecture' : architecture } ,
2021-03-05 10:33:27 +00:00
section : 'Configuration' , bool_yn : true )
2021-02-10 11:28:05 +00:00
summary ( target_summary , section : 'Build targets' , bool_yn : true )
2021-03-05 11:17:53 +00:00
if system == 'darwin'
foreach arg : get_option ( 'cpp_args' )
if arg . contains ( 'iPhone' )
summary ( { 'Please note' : 'You cannot legally distribute the Rubber Band Library\n in an iOS app on the App Store, unless you have first obtained a\n commercial licence.' } , section : '***' )
break
endif
endforeach
endif