// The following ifdef block is the standard way of creating macros which make exporting // from a DLL simpler. All files within this DLL are compiled with the LIBSCRIPT_EXPORTS // symbol defined on the command line. this symbol should not be defined on any project // that uses this DLL. This way any other project whose source files include this file see // SCRIPT_PIPE_DLL_API functions as being imported from a DLL, wheras this DLL sees symbols // defined with this macro as being exported. /* Magic for dynamic library import and export. This is unfortunately * compiler-specific because there isn't a standard way to do it. Currently it * works with the Visual Studio compiler for windows, and for GCC 4+. Anything * else gets all symbols made public, which gets messy */ /* The Visual Studio implementation */ #ifdef _MSC_VER #define SCRIPT_PIPE_DLL_IMPORT _declspec(dllimport) #ifdef BUILDING_SCRIPT_PIPE #define SCRIPT_PIPE_DLL_API _declspec(dllexport) #elif _DLL #define SCRIPT_PIPE_DLL_API _declspec(dllimport) #else #define AUDACITY_DLL_API #endif #endif //_MSC_VER /* The GCC implementation */ #ifdef CC_HASVISIBILITY // this is provided by the configure script, is only // enabled for suitable GCC versions /* The incantation is a bit weird here because it uses ELF symbol stuff. If we * make a symbol "default" it makes it visible (for import or export). Making it * "hidden" means it is invisible outside the shared object. */ #define SCRIPT_PIPE_DLL_IMPORT __attribute__((visibility("default"))) #ifdef BUILDING_SCRIPT_PIPE #define SCRIPT_PIPE_DLL_API __attribute__((visibility("default"))) #else #define SCRIPT_PIPE_DLL_API __attribute__((visibility("default"))) #endif #endif // This should be set to the version of Audacity that this version of // mod-scipt-pipe is designed to work with. For now, the versions must match // exactly for Audacity to agree to load the module. #define SCRIPT_PIPE_VERSION 1 #define SCRIPT_PIPE_RELEASE 3 #define SCRIPT_PIPE_REVISION 10 #define SCRIPT_PIPE_SUFFIX wxT("-alpha-") __TDATE__ #define SCRIPT_PIPE_MAKESTR( x ) #x #define SCRIPT_PIPE_QUOTE( x ) SCRIPT_PIPE_MAKESTR( x ) #define SCRIPT_PIPE_VERSION_STRING wxT( SCRIPT_PIPE_QUOTE( SCRIPT_PIPE_VERSION ) ) wxT(".") \ wxT( SCRIPT_PIPE_QUOTE( SCRIPT_PIPE_RELEASE ) ) wxT(".") \ wxT( SCRIPT_PIPE_QUOTE( SCRIPT_PIPE_REVISION ) ) \ SCRIPT_PIPE_SUFFIX