/* file : libcmark-gfm/cmark-gfm_export.h -*- C -*- * license : FreeBSD License; see accompanying COPYING file */ #ifndef CMARK_GFM_EXPORT_H #define CMARK_GFM_EXPORT_H /* The upstream's version of this file is auto-generated by cmake. It looks * quite convoluted and contains unused macro definitions. Note that currently * the upstream disables building shared libraries with VC. * * We implement this file from scratch using the standard build2 export header * as a template. */ #if defined(CMARK_GFM_STATIC) /* Using static. */ # define CMARK_GFM_EXPORT #elif defined(CMARK_GFM_STATIC_BUILD) /* Building static. */ # define CMARK_GFM_EXPORT #elif defined(CMARK_GFM_SHARED) /* Using shared. */ # ifdef _WIN32 # define CMARK_GFM_EXPORT __declspec(dllimport) # else # define CMARK_GFM_EXPORT # endif #elif defined(CMARK_GFM_SHARED_BUILD) /* Building shared. */ # ifdef _WIN32 # define CMARK_GFM_EXPORT __declspec(dllexport) # else # define CMARK_GFM_EXPORT __attribute__((visibility("default"))) # endif #else /* If none of the above macros are defined, then we assume we are being used * by some third-party build system that cannot/doesn't signal the library * type. Note that this fallback works for both static and shared but in case * of shared will be sub-optimal compared to having dllimport. */ # define CMARK_GFM_EXPORT /* Using static or shared. */ #endif /* Undefining these cmake-generated macros is not technically required, but * let's keep them for the record. */ #undef CMARK_GFM_NO_EXPORT #undef CMARK_GFM_DEPRECATED #undef CMARK_GFM_NO_DEPRECATED #undef CMARK_GFM_DEPRECATED_EXPORT #undef CMARK_GFM_DEPRECATED_NO_EXPORT #endif /* CMARK_GFM_EXPORT_H */