diff --git a/Formula/vamp-plugin-sdk.rb b/Formula/vamp-plugin-sdk.rb new file mode 100644 index 0000000000..af95ff2181 --- /dev/null +++ b/Formula/vamp-plugin-sdk.rb @@ -0,0 +1,191 @@ +class VampPluginSdk < Formula + desc "audio processing plugin system sdk" + homepage "http://www.vamp-plugins.org" + url "https://code.soundsoftware.ac.uk/attachments/download/1520/vamp-plugin-sdk-2.6.tar.gz" + sha256 "d0d3578137ac0c1e63f31561081a8d61da526a81152bc1dc9383b629bc07f85f" + head "https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk", :using => :hg + + stable do + # activate osx specific items in Makefile.in + # https://code.soundsoftware.ac.uk/issues/1473 + patch :p1, :DATA + end + + depends_on "automake" => :build + depends_on "pkg-config" => :build + depends_on "libsndfile" + depends_on "libogg" + depends_on "flac" + + def install + system "./configure", "--disable-debug", "--disable-dependency-tracking", "--prefix=#{prefix}" + system "make", "install" + end + + test do + (testpath/"test.cpp").write <<-EOS.undent + #include "vamp-sdk/Plugin.h" + #include + + class MyPlugin : public Vamp::Plugin { }; + + const VampPluginDescriptor * + vampGetPluginDescriptor(unsigned int version, unsigned int index) { return NULL; } + EOS + + system ENV.cxx, "test.cpp", "-I#{include}", "-Wl,-dylib", "-o", "test.dylib" + assert_match /Usage:/, shell_output("#{bin}/vamp-rdf-template-generator 2>&1", 2) + + cp "#{lib}/vamp/vamp-example-plugins.so", testpath/"vamp-example-plugins.dylib" + ENV["VAMP_PATH"]=testpath + assert_match /amplitudefollower/, shell_output("#{bin}/vamp-simple-host -l") + end +end + +__END__ +diff -r 1522e2f6d700 -r 3bfc44d26963 Makefile.in +--- a/Makefile.in Fri Sep 04 13:48:28 2015 +0100 ++++ b/Makefile.in Fri Dec 11 12:59:21 2015 +0000 +@@ -104,16 +104,32 @@ + PLUGIN_LDFLAGS = $(DYNAMIC_LDFLAGS) -Wl,--version-script=build/vamp-plugin.map + + +-## For OS/X with g++: +-#DYNAMIC_LDFLAGS = -dynamiclib +-#PLUGIN_LDFLAGS = $(DYNAMIC_LDFLAGS) +-#SDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) +-#HOSTSDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) ++# Adapt install details when found to be running on OSX (thanks to David O) ++uname_S = $(shell uname -s) ++ifeq ($(uname_S),Darwin) ++ ++ DYNAMIC_LDFLAGS = -dynamiclib ++ SDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) ++ HOSTSDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) ++ PLUGIN_LDFLAGS = $(DYNAMIC_LDFLAGS) -exported_symbols_list build/vamp-plugin.list ++ ++ INSTALL_HOSTSDK_LIBNAME = libvamp-hostsdk.3.6.0.dylib ++ INSTALL_HOSTSDK_LINK_ABI = libvamp-hostsdk.3.dylib ++ ++# The OS X linker doesn't allow you to request static linkage when ++# linking by library search path, if the same library name is found in ++# both static and dynamic versions. So if we install both static and ++# dynamic, the static library will never be used. That's OK for the ++# host SDK, but we do want plugins to get static linkage of the plugin ++# SDK. So install the dynamic version under a different name. ++ INSTALL_SDK_LIBNAME = libvamp-sdk-dynamic.2.6.0.dylib ++ INSTALL_SDK_LINK_ABI = libvamp-sdk-dynamic.2.dylib ++ ++endif + + + ### End of user-serviceable parts + +- + API_HEADERS = \ + $(APIDIR)/vamp.h + +diff -r 1522e2f6d700 -r 3bfc44d26963 build/update-version.sh +--- a/build/update-version.sh Fri Sep 04 13:48:28 2015 +0100 ++++ b/build/update-version.sh Fri Dec 11 12:59:21 2015 +0000 +@@ -42,6 +42,12 @@ + $p 's/(INSTALL_SDK_LINK_ABI\s*=\s*libvamp-sdk.so).*/$1.'$sdkmajor'/' \ + Makefile.in + ++$p 's/(INSTALL_SDK_LIBNAME\s*=\s*libvamp-sdk-dynamic).*.dylib/$1.'$sdkmajor'.'$sdkminor'.0.dylib/' \ ++ Makefile.in ++ ++$p 's/(INSTALL_SDK_LINK_ABI\s*=\s*libvamp-sdk-dynamic).*.dylib/$1.'$sdkmajor'.dylib/' \ ++ Makefile.in ++ + $p 's/(current)=.*/$1='$sdkmajor'/' \ + build/libvamp-sdk.la.in + +@@ -54,6 +60,12 @@ + $p 's/(INSTALL_HOSTSDK_LINK_ABI\s*=\s*libvamp-hostsdk.so).*/$1.'$hostmajor'/' \ + Makefile.in + ++$p 's/(INSTALL_HOSTSDK_LIBNAME\s*=\s*libvamp-hostsdk).*.dylib/$1.'$hostmajor'.'$hostminor'.0.dylib/' \ ++ Makefile.in ++ ++$p 's/(INSTALL_HOSTSDK_LINK_ABI\s*=\s*libvamp-hostsdk).*.dylib/$1.'$hostmajor'.dylib/' \ ++ Makefile.in ++ + $p 's/(current)=.*/$1='$hostmajor'/' \ + build/libvamp-hostsdk.la.in + +diff -r 1522e2f6d700 -r 3bfc44d26963 configure +--- a/configure Fri Sep 04 13:48:28 2015 +0100 ++++ b/configure Fri Dec 11 12:59:21 2015 +0000 +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.69 for vamp-plugin-sdk 2.5. ++# Generated by GNU Autoconf 2.69 for vamp-plugin-sdk 2.6. + # + # Report bugs to . + # +@@ -580,8 +580,8 @@ + # Identity of this package. + PACKAGE_NAME='vamp-plugin-sdk' + PACKAGE_TARNAME='vamp-plugin-sdk' +-PACKAGE_VERSION='2.5' +-PACKAGE_STRING='vamp-plugin-sdk 2.5' ++PACKAGE_VERSION='2.6' ++PACKAGE_STRING='vamp-plugin-sdk 2.6' + PACKAGE_BUGREPORT='cannam@all-day-breakfast.com' + PACKAGE_URL='' + +@@ -1243,7 +1243,7 @@ + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-\`configure' configures vamp-plugin-sdk 2.5 to adapt to many kinds of systems. ++\`configure' configures vamp-plugin-sdk 2.6 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1304,7 +1304,7 @@ + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of vamp-plugin-sdk 2.5:";; ++ short | recursive ) echo "Configuration of vamp-plugin-sdk 2.6:";; + esac + cat <<\_ACEOF + +@@ -1402,7 +1402,7 @@ + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-vamp-plugin-sdk configure 2.5 ++vamp-plugin-sdk configure 2.6 + generated by GNU Autoconf 2.69 + + Copyright (C) 2012 Free Software Foundation, Inc. +@@ -1651,7 +1651,7 @@ + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by vamp-plugin-sdk $as_me 2.5, which was ++It was created by vamp-plugin-sdk $as_me 2.6, which was + generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ +@@ -4505,7 +4505,7 @@ + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" +-This file was extended by vamp-plugin-sdk $as_me 2.5, which was ++This file was extended by vamp-plugin-sdk $as_me 2.6, which was + generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -4558,7 +4558,7 @@ + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ +-vamp-plugin-sdk config.status 2.5 ++vamp-plugin-sdk config.status 2.6 + configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\"