PLplot  5.10.0
pldll.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines