libarc-uri/arc/uri/export.hxx

33 lines
1.1 KiB
C++

#ifndef arc__uri__export_hxx_
#define arc__uri__export_hxx_
#if defined _WIN32 || defined __CYGWIN__
# define LIBARC_URI_SO_IMPORT __declspec(dllimport)
# define LIBARC_URI_SO_EXPORT __declspec(dllexport)
# define LIBARC_URI_SO_LOCAL
#else
# if __GNUC__ >= 4
# define LIBARC_URI_SO_IMPORT __attribute__ ((visibility ("default")))
# define LIBARC_URI_SO_EXPORT __attribute__ ((visibility ("default")))
# define LIBARC_URI_SO_LOCAL __attribute__ ((visibility ("hidden")))
# else
# define LIBARC_URI_SO_IMPORT
# define LIBARC_URI_SO_EXPORT
# define LIBARC_URI_SO_LOCAL
# endif
#endif
#if defined(LIBARC_URI_STATIC) // Using static.
# define LIBARC_URI_SYMEXPORT
#elif defined(LIBARC_URI_STATIC_BUILD) // Building static.
# define LIBARC_URI_SYMEXPORT
#elif defined(LIBARC_URI_SHARED) // Using shared.
# define LIBARC_URI_SYMEXPORT LIBARC_URI_SO_IMPORT
#elif defined(LIBARC_URI_SHARED_BUILD) // Building shared.
# define LIBARC_URI_SYMEXPORT LIBARC_URI_SO_EXPORT
#else
# error define LIBARC_URI_STATIC or LIBARC_URI_SHARED
#endif
#endif