mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-10-31 14:13:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| // 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
 | |
| 
 |