From 7e9b90f7e43ae853ef999abede1660255ac5b516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 1 Nov 2016 08:48:13 +0100 Subject: [PATCH] Midi: use fluidlite as fluidsynth replacement. * SF3 support. --- build/jam/BuildFeatures | 31 +++++++++++++++++++++++++++++++ src/kits/midi/Jamfile | 14 ++++++++++++-- src/kits/midi/SoftSynth.h | 2 +- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 0b75ec3c28..660ee579d0 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -256,6 +256,37 @@ if [ IsPackageAvailable ffmpeg_devel ] { } +# Fluidlite +if [ IsPackageAvailable fluidlite_devel ] && [ IsPackageAvailable libvorbis_devel ] { + ExtractBuildFeatureArchives fluidlite : + file: devel fluidlite_devel + library: $(developLibDir)/libfluidlite.a + headers: $(developHeadersDir) + ; + + EnableBuildFeatures fluidlite ; +} else { + Echo "Fluidlite support not available on $(TARGET_PACKAGING_ARCH)" ; +} + + +# Libvorbis +if [ IsPackageAvailable libvorbis_devel ] { + ExtractBuildFeatureArchives libvorbis : + file: base libvorbis + runtime: lib + file: devel libvorbis_devel + depends: base + library: $(developLibDir)/libvorbisfile.so.3 + headers: $(developHeadersDir) + ; + + EnableBuildFeatures libvorbis ; +} else { + Echo "Libvorbis support not available on $(TARGET_PACKAGING_ARCH)" ; +} + + # Freetype if [ IsPackageAvailable freetype_devel ] { ExtractBuildFeatureArchives freetype : diff --git a/src/kits/midi/Jamfile b/src/kits/midi/Jamfile index d6bb5c2a1c..d91a03a1ed 100644 --- a/src/kits/midi/Jamfile +++ b/src/kits/midi/Jamfile @@ -9,11 +9,20 @@ if $(TARGET_PLATFORM) != haiku { } UsePrivateHeaders midi ; -UseLibraryHeaders fluidsynth ; + local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { + if ! [ FIsBuildFeatureEnabled fluidlite ] { + continue ; + } + + UseBuildFeatureHeaders fluidlite ; + Includes [ FGristFiles MidiSynth.cpp MidiSynthFile.cpp + SoftSynth.cpp Synth.cpp ] + : [ BuildFeatureAttribute fluidlite : headers ] ; + SharedLibrary [ MultiArchDefaultGristFiles libmidi.so ] : Midi.cpp MidiGlue.cpp @@ -30,7 +39,8 @@ for architectureObject in [ MultiArchSubDirSetup ] { be midi2 media - [ MultiArchDefaultGristFiles libfluidsynth.so ] + [ BuildFeatureAttribute libvorbis : library ] + [ BuildFeatureAttribute fluidlite : library ] [ TargetLibsupc++ ] ; } diff --git a/src/kits/midi/SoftSynth.h b/src/kits/midi/SoftSynth.h index ccd7cb4b9d..da9c7a8afb 100644 --- a/src/kits/midi/SoftSynth.h +++ b/src/kits/midi/SoftSynth.h @@ -19,7 +19,7 @@ This version of SoftSynth is a wrapper libfluidsynth.so. */ -#include +#include #include #include #include