annotate src/vamp-plugin-sdk-2.5/build/README.msvc @ 151:fe80428a60a5

Add AppImage files
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 26 Jun 2018 18:00:44 +0100
parents 1813f30f2f15
children
rev   line source
cannam@108 1
cannam@108 2 The Vamp Plugin SDK -- Platform Notes for Visual C++ on Windows
cannam@108 3 ===============================================================
cannam@108 4
cannam@108 5 Visual C++ Project Files
cannam@108 6 ------------------------
cannam@108 7
cannam@108 8 Three Visual C++ project files are included with the SDK:
cannam@108 9
cannam@108 10 - build/VampPluginSDK.vcproj
cannam@108 11
cannam@108 12 This builds the plugin SDK into a single static library, but does
cannam@108 13 not build the example plugins, the host SDK, or the host. (We
cannam@108 14 recommend using static linkage for the SDK rather than distributing
cannam@108 15 it as a DLL, particularly when building plugins.)
cannam@108 16
cannam@108 17 - build/VampHostSDK.vcproj
cannam@108 18
cannam@108 19 This builds the host SDK into a single static library, but does not
cannam@108 20 build the plugin SDK, example plugins, or host.
cannam@108 21
cannam@108 22 - build/VampExamplePlugins.vcproj
cannam@108 23
cannam@108 24 This builds the example plugins DLL, but does not build the plugin
cannam@108 25 or host SDKs or the host. You don't need to build the plugin SDK
cannam@108 26 before this, because this project simply includes the plugin SDK
cannam@108 27 files rather than using the library.
cannam@108 28
cannam@108 29 Of course, when using Visual Studio or another IDE to build a plugin
cannam@108 30 or host using the SDK, you may simply add the .h and .cpp files in the
cannam@108 31 vamp-sdk or vamp-hostsdk directories to your existing project. This
cannam@108 32 is the approach taken in the VampExamplePlugins project.
cannam@108 33
cannam@108 34 As the command-line host has additional library dependencies (namely
cannam@108 35 libsndfile), no pre-packaged project is included to build it.
cannam@108 36
cannam@108 37
cannam@108 38 Installing the Example Plugins
cannam@108 39 ------------------------------
cannam@108 40
cannam@108 41 To install the example plugins so you can load them in Vamp hosts,
cannam@108 42 copy the files
cannam@108 43
cannam@108 44 build\release\vamp-example-plugins.dll
cannam@108 45 and
cannam@108 46 examples\vamp-example-plugins.cat
cannam@108 47
cannam@108 48 to
cannam@108 49
cannam@108 50 C:\Program Files\Vamp Plugins
cannam@108 51
cannam@108 52
cannam@108 53 Plugin Linkage
cannam@108 54 --------------
cannam@108 55
cannam@108 56 Vamp plugins are distributed as dynamic libraries (DLLs). A properly
cannam@108 57 packaged Vamp plugin DLL should export exactly one public symbol,
cannam@108 58 namely the Vamp API entry point vampGetPluginDescriptor.
cannam@108 59
cannam@108 60 One nice tidy way to achieve this with Visual Studio is to add the
cannam@108 61 linker option /EXPORT:vampGetPluginDescriptor to your project. (All
cannam@108 62 of the other symbols will be properly hidden, because that is the
cannam@108 63 default for the Visual Studio linker.) The included example plugins
cannam@108 64 project in build/VampExamplePlugins.vcproj does this.
cannam@108 65
cannam@108 66 Alternatively, you may modify vamp/vamp.h to add the
cannam@108 67 __declspec(dllexport) attribute to the vampGetPluginDescriptor
cannam@108 68 declaration. This is not present by default, because it isn't
cannam@108 69 portable and, as we only want one symbol exported, the above linker
cannam@108 70 option works equally well without code changes.
cannam@108 71
cannam@108 72 (If you don't take at least one of these actions, your plugin library
cannam@108 73 simply will not load in any host.)
cannam@108 74
cannam@108 75
cannam@108 76 Using MinGW/Cygwin
cannam@108 77 ------------------
cannam@108 78
cannam@108 79 Refer to README.linux for build instructions using the GNU toolchain.
cannam@108 80
cannam@108 81
cannam@108 82 Test Your Plugins
cannam@108 83 -----------------
cannam@108 84
cannam@108 85 The Vamp Plugin Tester is a vital utility which you can use to test
cannam@108 86 your plugins for common problems. It can help you if you're having
cannam@108 87 problems getting your plugin to work at all, and you're strongly
cannam@108 88 advised to use it before you release anything. Download it from the
cannam@108 89 Vamp plugins site now!
cannam@108 90