2016-08-12 15:51:45 +00:00
|
|
|
soundtouch_sources = [
|
|
|
|
'plugin.c',
|
|
|
|
'gstpitch.cc',
|
|
|
|
'gstbpmdetect.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
soundtouch_cargs = ['-DHAVE_SOUNDTOUCH']
|
2018-07-27 13:29:23 +00:00
|
|
|
if get_option('soundtouch').disabled()
|
|
|
|
subdir_done()
|
|
|
|
endif
|
2016-08-12 15:51:45 +00:00
|
|
|
|
2024-02-29 11:31:47 +00:00
|
|
|
soundtouch_dep = dependency('soundtouch', required : false,
|
|
|
|
fallback : ['soundtouch', 'soundtouch_dep'])
|
2016-08-12 15:51:45 +00:00
|
|
|
if soundtouch_dep.found()
|
|
|
|
soundtouch_cargs += ['-DHAVE_SOUNDTOUCH_1_4']
|
|
|
|
else
|
|
|
|
soundtouch_dep = dependency('soundtouch-1.4', required : false)
|
|
|
|
if soundtouch_dep.found()
|
|
|
|
soundtouch_cargs += ['-DHAVE_SOUNDTOUCH_1_4']
|
|
|
|
else
|
|
|
|
soundtouch_dep = dependency('soundtouch-1.0', required : false)
|
|
|
|
# NOTE: I removed the checks for libSoundTouch.pc and so on.
|
|
|
|
# Add them back once we know which distros use them.
|
|
|
|
endif
|
|
|
|
endif
|
2018-07-27 13:29:23 +00:00
|
|
|
if not soundtouch_dep.found() and get_option('soundtouch').enabled()
|
|
|
|
error('soundtouch plugin enabled but soundtouch library not found')
|
|
|
|
endif
|
2016-08-12 15:51:45 +00:00
|
|
|
|
2024-02-29 11:31:47 +00:00
|
|
|
# GCC, by default, handles exceptions in C++ sources as /EHsc, allowing
|
|
|
|
# exceptions intra C++ code, and terminating the app on hitting a C function's
|
|
|
|
# stack.
|
|
|
|
# Grep ST_NO_EXCEPTION_HANDLING and see:
|
|
|
|
# https://learn.microsoft.com/en-us/cpp/build/reference/eh-exception-handling-model?view=msvc-170
|
|
|
|
# https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fexceptions
|
|
|
|
#
|
|
|
|
# However, -fexceptions in Application.mk must be manually injected, as
|
|
|
|
# their toolchain does not add it for historical reasons.
|
|
|
|
# https://developer.android.com/ndk/guides/cpp-support?hl=es-419
|
|
|
|
if get_option('cpp_eh') in ['none']
|
|
|
|
soundtouch_cargs += ['-DST_NO_EXCEPTION_HANDLING']
|
|
|
|
elif host_system == 'android'
|
|
|
|
soundtouch_cargs += cxx.get_supported_arguments('-fexceptions')
|
|
|
|
endif
|
|
|
|
|
2016-08-12 15:51:45 +00:00
|
|
|
if soundtouch_dep.found()
|
|
|
|
gstsoundtouch = library('gstsoundtouch',
|
|
|
|
soundtouch_sources,
|
|
|
|
c_args : gst_plugins_bad_args + soundtouch_cargs,
|
|
|
|
cpp_args : gst_plugins_bad_args + soundtouch_cargs,
|
|
|
|
include_directories : [configinc],
|
2023-05-30 05:31:47 +00:00
|
|
|
dependencies : [gstaudio_dep, soundtouch_dep],
|
2024-03-14 19:51:08 +00:00
|
|
|
override_options: ['cpp_std=c++14'],
|
2016-08-12 15:51:45 +00:00
|
|
|
install : true,
|
|
|
|
install_dir : plugins_install_dir)
|
2018-10-22 09:30:45 +00:00
|
|
|
plugins += [gstsoundtouch]
|
2016-08-12 15:51:45 +00:00
|
|
|
endif
|