1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-01-12 15:45:54 +01:00

Move library tree where it belongs

This commit is contained in:
ra
2010-01-24 09:19:39 +00:00
parent e74978ba77
commit 58caf78a86
6020 changed files with 2790154 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,64 @@
The Vamp Plugin SDK -- Platform Notes for Linux and other GNU platforms
=======================================================================
Building at the command line
----------------------------
To build the SDK, example plugins, and command-line host:
$ ./configure
$ make
To install after a successful make, run "make install" as root (or via
sudo).
Installing the Example Plugins
------------------------------
To install the example plugins so you can load them in Vamp hosts,
copy the files
examples/vamp-example-plugins.so
and
examples/vamp-example-plugins.cat
to
/usr/local/lib/vamp/
or
$HOME/vamp/
Plugin Linkage
--------------
Vamp plugins are distributed as dynamic libraries (.so files). A
properly packaged Vamp plugin library should export exactly one public
symbol, namely the Vamp API entry point vampGetPluginDescriptor.
The default for the GNU linker is to export all of the symbols in the
library. This will work (the host will be able to load the plugin),
but it unnecessarily pollutes the host's symbol namespace, it may
cause symbol collisions in some esoteric circumstances, and it
increases the amount of time the plugin takes to load.
To improve this behaviour, you can instruct the linker to export only
the one required symbol using a linker script. To do this, place the
text
{
global: vampGetPluginDescriptor;
local: *;
};
into a text file, and then use the --version-script option to the
linker to tell it to refer to this file. All other symbols will then
be properly hidden.
The Makefile included in this SDK uses this method to manage symbol
visibility for the included example plugins, using the file
build/vamp-plugin.map. There are other methods that will work too,
but this one is simple and has the advantage of requiring no changes
to the code.

View File

@@ -0,0 +1,80 @@
The Vamp Plugin SDK -- Platform Notes for Visual C++ on Windows
===============================================================
Visual C++ Project Files
------------------------
Three Visual C++ project files are included with the SDK:
- build/VampPluginSDK.vcproj
This builds the plugin SDK into a single static library, but does
not build the example plugins, the host SDK, or the host. (We
recommend using static linkage for the SDK rather than distributing
it as a DLL, particularly when building plugins.)
- build/VampHostSDK.vcproj
This builds the host SDK into a single static library, but does not
build the plugin SDK, example plugins, or host.
- build/VampExamplePlugins.vcproj
This builds the example plugins DLL, but does not build the plugin
or host SDKs or the host. You don't need to build the plugin SDK
before this, because this project simply includes the plugin SDK
files rather than using the library.
Of course, when using Visual Studio or another IDE to build a plugin
or host using the SDK, you may simply add the .h and .cpp files in the
vamp-sdk or vamp-hostsdk directories to your existing project. This
is the approach taken in the VampExamplePlugins project.
As the command-line host has additional library dependencies (namely
libsndfile), no pre-packaged project is included to build it.
Installing the Example Plugins
------------------------------
To install the example plugins so you can load them in Vamp hosts,
copy the files
build\release\vamp-example-plugins.dll
and
examples\vamp-example-plugins.cat
to
C:\Program Files\Vamp Plugins
Plugin Linkage
--------------
Vamp plugins are distributed as dynamic libraries (DLLs). A properly
packaged Vamp plugin DLL should export exactly one public symbol,
namely the Vamp API entry point vampGetPluginDescriptor.
One nice tidy way to achieve this with Visual Studio is to add the
linker option /EXPORT:vampGetPluginDescriptor to your project. (All
of the other symbols will be properly hidden, because that is the
default for the Visual Studio linker.) The included example plugins
project in build/VampExamplePlugins.vcproj does this.
Alternatively, you may modify vamp/vamp.h to add the
__declspec(dllexport) attribute to the vampGetPluginDescriptor
declaration. This is not present by default, because it isn't
portable and, as we only want one symbol exported, the above linker
option works equally well without code changes.
(If you don't take at least one of these actions, your plugin library
simply will not load in any host.)
Using MinGW/Cygwin
------------------
Refer to README.linux for build instructions using the GNU toolchain.

View File

@@ -0,0 +1,70 @@
The Vamp Plugin SDK -- Platform Notes for OS/X
==============================================
Building at the command line
----------------------------
To build the SDK, example plugins, and command-line host:
$ make -f Makefile.osx
You must have libsndfile (http://www.mega-nerd.com/libsndfile/)
installed in order to build the command-line host successfully. To
build only the SDK and examples:
$ make -f Makefile.osx sdk examples
See the comments at the top of Makefile.osx for more information about
the libraries and other targets that are built in this way.
If you are using an IDE, you may prefer to simply add the vamp-sdk and
src/vamp-sdk (for plugins) or vamp-hostsdk and src/vamp-hostsdk (for
hosts) directories to your existing project.
Installing the Example Plugins
------------------------------
To install the example plugins so you can load them in Vamp hosts,
copy the files
examples/vamp-example-plugins.dylib
and
examples/vamp-example-plugins.cat
to
/Library/Audio/Plug-Ins/Vamp/
or
$HOME/Library/Audio/Plug-Ins/Vamp/
Plugin Linkage
--------------
Vamp plugins are distributed as dynamic libraries (.dylib). A
well-packaged Vamp plugin library should export exactly one public
symbol, namely the Vamp API entry point vampGetPluginDescriptor.
The default for the OS/X linker is to export all of the symbols in the
library. This will work (the host will be able to load the plugin),
but it unnecessarily pollutes the host's symbol namespace, it may
cause symbol collisions in some esoteric circumstances, and it
increases the amount of time the plugin takes to load.
To improve this behaviour, you can instruct the linker to export only
the one required symbol using a symbols list file. To do this, place
the single line
_vampGetPluginDescriptor
(with leading underscore) into a text file, and then use the
-exported_symbols_list option to the linker to tell it to refer to
this file. All other symbols will then be properly hidden.
The Makefile.osx included in this SDK uses this method to manage
symbol visibility for the included example plugins, using the file
build/vamp-plugin.list. There are other methods that will work too,
but this one is simple and has the advantage of requiring no changes
to the code.

View File

@@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="VampExamplePlugins"
ProjectGUID="{B3D1F5A4-4571-4D20-B184-8ACD03D6C97A}"
RootNamespace="VampExamplePlugins"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(ProjectDir)/..&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;VAMPEXAMPLEPLUGINS_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:vampGetPluginDescriptor"
OutputFile="$(OutDir)\vamp-example-plugins.dll"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;$(ProjectDir)/..&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;VAMPEXAMPLEPLUGINS_EXPORTS;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:vampGetPluginDescriptor"
OutputFile="$(OutDir)\vamp-example-plugins.dll"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\examples\AmplitudeFollower.h"
>
</File>
<File
RelativePath="..\examples\FixedTempoEstimator.h"
>
</File>
<File
RelativePath="..\examples\PercussionOnsetDetector.h"
>
</File>
<File
RelativePath="..\vamp-sdk\plugguard.h"
>
</File>
<File
RelativePath="..\vamp-sdk\Plugin.h"
>
</File>
<File
RelativePath="..\vamp-sdk\PluginAdapter.h"
>
</File>
<File
RelativePath="..\vamp-sdk\PluginBase.h"
>
</File>
<File
RelativePath="..\vamp-sdk\RealTime.h"
>
</File>
<File
RelativePath="..\examples\SpectralCentroid.h"
>
</File>
<File
RelativePath="..\examples\PowerSpectrum.h"
>
</File>
<File
RelativePath="..\examples\ZeroCrossing.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\examples\AmplitudeFollower.cpp"
>
</File>
<File
RelativePath="..\examples\FixedTempoEstimator.cpp"
>
</File>
<File
RelativePath="..\examples\PercussionOnsetDetector.cpp"
>
</File>
<File
RelativePath="..\src\vamp-sdk\PluginAdapter.cpp"
>
</File>
<File
RelativePath="..\examples\plugins.cpp"
>
</File>
<File
RelativePath="..\src\vamp-sdk\RealTime.cpp"
>
</File>
<File
RelativePath="..\examples\SpectralCentroid.cpp"
>
</File>
<File
RelativePath="..\examples\PowerSpectrum.cpp"
>
</File>
<File
RelativePath="..\examples\ZeroCrossing.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="VampHostSDK"
ProjectGUID="{3875EF8B-14E8-4825-B2C1-A8B869C336F5}"
RootNamespace="VampHostSDK"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="4"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".."
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="4"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".."
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="2"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\vamp-hostsdk\hostguard.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\Plugin.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginBase.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginBufferingAdapter.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginChannelAdapter.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginHostAdapter.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginInputDomainAdapter.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginLoader.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginSummarisingAdapter.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\PluginWrapper.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\RealTime.h"
>
</File>
<File
RelativePath="..\vamp-hostsdk\vamp-hostsdk.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\vamp-hostsdk\PluginBufferingAdapter.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\PluginChannelAdapter.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\PluginHostAdapter.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\PluginInputDomainAdapter.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\PluginLoader.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\PluginSummarisingAdapter.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\PluginWrapper.cpp"
>
</File>
<File
RelativePath="..\src\vamp-hostsdk\RealTime.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="VampPluginSDK"
ProjectGUID="{65EFA7D7-C3CE-4D29-BE96-E27F2B5979A5}"
RootNamespace="VampPluginSDK"
Keyword="Win32Proj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="4"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".."
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="4"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".."
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="2"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\vamp-sdk\plugguard.h"
>
</File>
<File
RelativePath="..\vamp-sdk\Plugin.h"
>
</File>
<File
RelativePath="..\vamp-sdk\PluginAdapter.h"
>
</File>
<File
RelativePath="..\vamp-sdk\PluginBase.h"
>
</File>
<File
RelativePath="..\vamp-sdk\RealTime.h"
>
</File>
<File
RelativePath="..\vamp-sdk\vamp-sdk.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\vamp-sdk\PluginAdapter.cpp"
>
</File>
<File
RelativePath="..\src\vamp-sdk\RealTime.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,9 @@
dlname='%LINK_ABI%'
library_names='%LIBNAME% %LINK_ABI% %LINK_DEV%'
old_library='%STATIC%'
dependency_libs=''
current=3
age=0
revision=0
installed=yes
libdir='%LIBS%'

View File

@@ -0,0 +1,9 @@
dlname='%LINK_ABI%'
library_names='%LIBNAME% %LINK_ABI% %LINK_DEV%'
old_library='%STATIC%'
dependency_libs=''
current=2
age=0
revision=0
installed=yes
libdir='%LIBS%'

View File

@@ -0,0 +1 @@
_vampGetPluginDescriptor

View File

@@ -0,0 +1,4 @@
{
global: vampGetPluginDescriptor;
local: *;
};