PLplot
5.10.0
|
00001 #ifndef __PL_DLL_H 00002 #define __PL_DLL_H 00003 00004 #ifdef USINGDLL 00005 #if defined ( WIN32 ) 00006 // Visual C/C++, Borland, MinGW and Watcom 00007 #if defined ( __VISUALC__ ) || defined ( _MSC_VER ) || defined ( __BORLANDC__ ) || defined ( __GNUC__ ) || defined ( __WATCOMC__ ) 00008 #define PLDLLEXPORT __declspec( dllexport ) 00009 #define PLDLLIMPORT __declspec( dllimport ) 00010 #else 00011 #define PLDLLEXPORT 00012 #define PLDLLIMPORT 00013 #endif 00014 #elif defined ( __CYGWIN__ ) 00015 #define PLDLLEXPORT __declspec( dllexport ) 00016 #define PLDLLIMPORT __declspec( dllimport ) 00017 #elif defined ( __GNUC__ ) && __GNUC__ > 3 00018 // Follow ideas in http://gcc.gnu.org/wiki/Visibility for GCC version 4.x 00019 // The following forces exported symbols specifically designated with 00020 // PLDLLEXPORT to be visible. 00021 #define PLDLLEXPORT __attribute__ ( ( visibility( "default" ) ) ) 00022 #define PLDLLIMPORT 00023 #endif 00024 #endif 00025 00026 // For an unknown compiler or static built we clear the macros 00027 #ifndef PLDLLEXPORT 00028 #define PLDLLEXPORT 00029 #define PLDLLIMPORT 00030 #endif 00031 00032 // The IMPEXP macros will always be set to DLLIMPORT (even for 00033 // the static library, but DLLIMPORT is empty in this case), if 00034 // cmake didn't set the corresponding macro xxxx_EXPORTS when the 00035 // corresponding library is built (DLLIMPEXP is set to DLLEXPORT 00036 // then) 00037 #if defined ( plplotd_EXPORTS ) 00038 #define PLDLLIMPEXP PLDLLEXPORT 00039 #define PLDLLIMPEXP_DATA( type ) PLDLLEXPORT type 00040 #else 00041 #define PLDLLIMPEXP PLDLLIMPORT 00042 #define PLDLLIMPEXP_DATA( type ) PLDLLIMPORT type 00043 #endif 00044 00045 // for dynamic drivers set the macros correctly. If a shared library is built, 00046 // but dyanmic drivers disabled, the driver dll macros are the same as the 00047 // plplot dll macros 00048 #ifdef ENABLE_DYNDRIVERS 00049 #if defined ( aqt_EXPORTS ) || defined ( cairo_EXPORTS ) || defined ( cgm_EXPORTS ) || \ 00050 defined ( dg300_EXPORTS ) || defined ( gd_EXPORTS ) || defined ( gcw_EXPORTS ) || \ 00051 defined ( hpgl_EXPORTS ) || defined ( impress_EXPORTS ) || defined ( linuxvga_EXPORTS ) || \ 00052 defined ( ljii_EXPORTS ) || defined ( ljiip_EXPORTS ) || defined ( mem_EXPORTS ) || \ 00053 defined ( ntk_EXPORTS ) || defined ( null_EXPORTS ) || defined ( pbm_EXPORTS ) || \ 00054 defined ( pdf_EXPORTS ) || defined ( plmeta_EXPORTS ) || defined ( ps_EXPORTS ) || \ 00055 defined ( pstex_EXPORTS ) || defined ( psttf_EXPORTS ) || defined ( svg_EXPORTS ) || \ 00056 defined ( tek_EXPORTS ) || defined ( tk_EXPORTS ) || defined ( tkwin_EXPORTS ) || \ 00057 defined ( wingcc_EXPORTS ) || defined ( wxwidgets_EXPORTS ) || defined ( xfig_EXPORTS ) || \ 00058 defined ( xwin_EXPORTS ) || defined ( qt_EXPORTS ) 00059 #define PLDLLIMPEXP_DRIVER PLDLLEXPORT 00060 #define PLDLLIMPEXP_DRIVER_DATA( type ) PLDLLEXPORT type 00061 #else 00062 #define PLDLLIMPEXP_DRIVER PLDLLIMPORT 00063 #define PLDLLIMPEXP_DRIVER_DATA( type ) PLDLLIMPORT type 00064 #endif 00065 #else 00066 #define PLDLLIMPEXP_DRIVER PLDLLIMPEXP 00067 #define PLDLLIMPEXP_DRIVER_DATA( type ) PLDLLIMPEXP_DATA( type ) 00068 #endif 00069 00070 #if defined ( plplotcxxd_EXPORTS ) 00071 #define PLDLLIMPEXP_CXX PLDLLEXPORT 00072 #define PLDLLIMPEXP_CXX_DATA( type ) PLDLLEXPORT type 00073 #else 00074 #define PLDLLIMPEXP_CXX PLDLLIMPORT 00075 #define PLDLLIMPEXP_CXX_DATA( type ) PLDLLIMPORT type 00076 #endif 00077 00078 #if defined ( plplotf95cd_EXPORTS ) 00079 #define PLDLLIMPEXP_F95C PLDLLEXPORT 00080 #define PLDLLIMPEXP_F95C_DATA( type ) PLDLLEXPORT type 00081 #else 00082 #define PLDLLIMPEXP_F95C PLDLLIMPORT 00083 #define PLDLLIMPEXP_F95C_DATA( type ) PLDLLIMPORT type 00084 #endif 00085 00086 #if defined ( plplotwxwidgetsd_EXPORTS ) 00087 #define PLDLLIMPEXP_WX PLDLLEXPORT 00088 #define PLDLLIMPEXP_WX_DATA( type ) PLDLLEXPORT type 00089 #else 00090 #define PLDLLIMPEXP_WX PLDLLIMPORT 00091 #define PLDLLIMPEXP_WX_DATA( type ) PLDLLIMPORT type 00092 #endif 00093 00094 #if defined ( tclmatrixd_EXPORTS ) 00095 #define PLDLLIMPEXP_TCLMAT PLDLLEXPORT 00096 #define PLDLLIMPEXP_TCLMAT_DATA( type ) PLDLLEXPORT type 00097 #else 00098 #define PLDLLIMPEXP_TCLMAT PLDLLIMPORT 00099 #define PLDLLIMPEXP_TCLMAT_DATA( type ) PLDLLIMPORT type 00100 #endif 00101 00102 #if defined ( plplottcltk_Maind_EXPORTS ) | defined ( plplottcltkd_EXPORTS ) 00103 #define PLDLLIMPEXP_TCLTK PLDLLEXPORT 00104 #define PLDLLIMPEXP_TCLTK_DATA( type ) PLDLLEXPORT type 00105 #else 00106 #define PLDLLIMPEXP_TCLTK PLDLLIMPORT 00107 #define PLDLLIMPEXP_TCLTK_DATA( type ) PLDLLIMPORT type 00108 #endif 00109 00110 #if defined ( plplotgnome2d_EXPORTS ) 00111 #define PLDLLIMPEXP_GNOME2 PLDLLEXPORT 00112 #define PLDLLIMPEXP_GNOME2_DATA( type ) PLDLLEXPORT type 00113 #else 00114 #define PLDLLIMPEXP_GNOME2 PLDLLIMPORT 00115 #define PLDLLIMPEXP_GNOME2_DATA( type ) PLDLLIMPORT type 00116 #endif 00117 00118 #if defined ( cplplotcanvasmodule_EXPORTS ) 00119 #define PLDLLIMPEXP_CPLPLOTCANVASMODULE PLDLLEXPORT 00120 #define PLDLLIMPEXP_CPLPLOTCANVASMODULE_DATA( type ) PLDLLEXPORT type 00121 #else 00122 #define PLDLLIMPEXP_CPLPLOTCANVASMODULE PLDLLIMPORT 00123 #define PLDLLIMPEXP_CPLPLOTCANVASMODULE_DATA( type ) PLDLLIMPORT type 00124 #endif 00125 00126 #if defined ( plplot_widgetmodule_EXPORTS ) 00127 #define PLDLLIMPEXP_PLPLOT_WIDGETMODULE PLDLLEXPORT 00128 #define PLDLLIMPEXP_PLPLOT_MODULE_DATA( type ) PLDLLEXPORT type 00129 #else 00130 #define PLDLLIMPEXP_PLPLOT_MODULE PLDLLIMPORT 00131 #define PLDLLIMPEXP_PLPLOT_MODULE_DATA( type ) PLDLLIMPORT type 00132 #endif 00133 00134 #if defined ( plplotqtd_EXPORTS ) 00135 #define PLDLLIMPEXP_QT PLDLLEXPORT 00136 #define PLDLLIMPEXP_QT_DATA( type ) PLDLLEXPORT type 00137 #else 00138 #define PLDLLIMPEXP_QT PLDLLIMPORT 00139 #define PLDLLIMPEXP_QT_DATA( type ) PLDLLIMPORT type 00140 #endif 00141 00142 #if defined ( plplot_pyqt4_EXPORTS ) 00143 #define PLDLLIMPEXP_PYQT4 PLDLLEXPORT 00144 #define PLDLLIMPEXP_PYQT4_DATA( type ) PLDLLEXPORT type 00145 #else 00146 #define PLDLLIMPEXP_PYQT4 PLDLLIMPORT 00147 #define PLDLLIMPEXP_PYQT4_DATA( type ) PLDLLIMPORT type 00148 #endif 00149 00150 #endif // __PL_DLL_H