SoapySDR  0.5.4-g68d0793c
Vendor and platform neutral SDR interface library
Config.h
Go to the documentation of this file.
1 
11 #pragma once
12 // http://gcc.gnu.org/wiki/Visibility
13 // Generic helper definitions for shared library support
14 #if defined _WIN32 || defined __CYGWIN__
15  #define SOAPY_SDR_HELPER_DLL_IMPORT __declspec(dllimport)
16  #define SOAPY_SDR_HELPER_DLL_EXPORT __declspec(dllexport)
17  #define SOAPY_SDR_HELPER_DLL_LOCAL
18 #else
19  #if __GNUC__ >= 4
20  #define SOAPY_SDR_HELPER_DLL_IMPORT __attribute__ ((visibility ("default")))
21  #define SOAPY_SDR_HELPER_DLL_EXPORT __attribute__ ((visibility ("default")))
22  #define SOAPY_SDR_HELPER_DLL_LOCAL __attribute__ ((visibility ("hidden")))
23  #else
24  #define SOAPY_SDR_HELPER_DLL_IMPORT
25  #define SOAPY_SDR_HELPER_DLL_EXPORT
26  #define SOAPY_SDR_HELPER_DLL_LOCAL
27  #endif
28 #endif
29 
30 // Now we use the generic helper definitions above to define SOAPY_SDR_API and SOAPY_SDR_LOCAL.
31 // SOAPY_SDR_API is used for the public API symbols. It either DLL imports or DLL exports (or does nothing for static build)
32 // SOAPY_SDR_LOCAL is used for non-api symbols.
33 
34 #define SOAPY_SDR_DLL //always building a DLL
35 
36 #ifdef SOAPY_SDR_DLL // defined if SOAPY is compiled as a DLL
37  #ifdef SOAPY_SDR_DLL_EXPORTS // defined if we are building the SOAPY DLL (instead of using it)
38  #define SOAPY_SDR_API SOAPY_SDR_HELPER_DLL_EXPORT
39  #define SOAPY_SDR_EXTERN
40  #else
41  #define SOAPY_SDR_API SOAPY_SDR_HELPER_DLL_IMPORT
42  #define SOAPY_SDR_EXTERN extern
43  #endif // SOAPY_SDR_DLL_EXPORTS
44  #define SOAPY_SDR_LOCAL SOAPY_SDR_HELPER_DLL_LOCAL
45 #else // SOAPY_SDR_DLL is not defined: this means SOAPY is a static lib.
46  #define SOAPY_SDR_API
47  #define SOAPY_SDR_LOCAL
48  #define SOAPY_SDR_EXTERN
49 #endif // SOAPY_SDR_DLL
50 
51 #include <iso646.h>
52 
53 #ifndef _MSC_VER
54 #include <stdbool.h>
55 #endif