
#ifndef VISIBILITY_SUPPORT_HH
#define VISIBILITY_SUPPORT_HH 1

// -----------------------------------------------------------

// Visibility macros for GNU GCC

#if defined __GNUC__ && (__GNUC__) >= 4 && (not defined DISABLE_VISIBILITY_SUPPORT)

  /* Attribute for objects to be exported from DSOs */
  #define SG_DLLEXPORT __attribute__ ((visibility("default")))

  /* Attribute for objects to be imported from DSOs */
  #define SG_DLLIMPORT /* intentionally left with no value */

  /* Attribute for objects local to current DSO */
  #define SG_DLLLOCAL __attribute__ ((visibility("hidden")))

  /* Attribute for DSO public objects */
  #define SG_DLLPUBLIC __attribute__ ((visibility("default")))

#else 

  /* Attribute for objects to be exported from DSOs */
  #define SG_DLLEXPORT /* Unsupported */

  /* Attribute for objects to be imported from DSOs */
  #define SG_DLLIMPORT /* Unsupported */

  /* Attribute for objects local to current DSO */
  #define SG_DLLLOCAL /* Unsupported */

  /* Attribute for DSO public objects */
  #define SG_DLLPUBLIC /* Unsupported */

#endif

// ------------------------------------------------------------

#endif
