Files
2026-10-23 16:13:31 +00:00

65 lines
1.8 KiB
C

#ifndef DDS_EXPORT_H
#define DDS_EXPORT_H
#ifdef DDS_STATIC_DEFINE
# define DDS_EXPORT
# define DDS_NO_EXPORT
#else
# ifndef DDS_EXPORT
# ifdef ddsc_EXPORTS
/* We are building this library */
# define DDS_EXPORT __attribute__((visibility("default")))
# else
/* We are using this library */
# define DDS_EXPORT __attribute__((visibility("default")))
# endif
# endif
# ifndef DDS_NO_EXPORT
# define DDS_NO_EXPORT __attribute__((visibility("hidden")))
# endif
#endif
#ifndef DDS_DEPRECATED
# define DDS_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef DDS_DEPRECATED_EXPORT
# define DDS_DEPRECATED_EXPORT DDS_EXPORT DDS_DEPRECATED
#endif
#ifndef DDS_DEPRECATED_NO_EXPORT
# define DDS_DEPRECATED_NO_EXPORT DDS_NO_EXPORT DDS_DEPRECATED
#endif
/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef DDS_NO_DEPRECATED
# define DDS_NO_DEPRECATED
# endif
#endif
#ifndef DDS_INLINE_EXPORT
# if __MINGW32__ && (!defined(__clang__) || !defined(ddsc_EXPORTS))
# define DDS_INLINE_EXPORT
# else
# define DDS_INLINE_EXPORT DDS_EXPORT
# endif
#endif
// Some internal functions are exported even though are not part of the API nor
// foreseen to ever be called by a user of the library (unlike some functions
// that are exported for convenience in building tools or even examples, such as
// the AVL tree). One reason for this is that they are useful in instrumenting
// Cyclone DDS with some performance analysis tools, and it is in the interest
// of the projec that such analyses can be done.
//
// There is no guarantee that such internal symbols will remain available or
// that their role will be the same.
#ifndef DDS_EXPORT_INTERNAL_FUNCTION
# define DDS_EXPORT_INTERNAL_FUNCTION DDS_EXPORT
#endif
#endif /* DDS_EXPORT_H */