HDK
|
There is more information about the motivation for these macros documented in the OpenEXR source tree (https://github.com/AcademySoftwareFoundation/openexr) under docs/SymbolVisibility.md
Imath only needs a couple of the possible macros outlined in the above document, and due to it largely being inline only, does not have much to do.
See website/SymbolVisibility.rst for more discussion about the motivation for these macros
If we are compiling a DLL for Windows, there needs to be custom rules for each library such that the macro swaps between doing a dllexport and a dllimport, so the defines here are less useful. Further, MSVC does not have this concept at all currently, so is elided.
The top level macros which start with OPENEXR can act as simple ways to combine the logic however for non-DLL or non-windows platforms, but until the current patterns change, one should check the specific library export.h (i.e.
These per-library exports define a subset which are used by that library.
Iex is simple and does not need to do more than expose class types and functions, and does not have any private members to hide, so only provides a couple of the possible macros.
Similarly, IlmThread is also reasonably simple.
OpenEXR and OpenEXRUtil have much more logic and have to deal with templates and template instantiation, and so define more of the macros.
#define EXR_EXPORT OPENEXR_EXPORT |
Definition at line 31 of file openexr_config.h.
#define EXR_PRINTF_FUNC_ATTRIBUTE |
Definition at line 42 of file openexr_config.h.
#define ILMTHREAD_EXPORT OPENEXR_EXPORT |
Definition at line 35 of file IlmThreadExport.h.
#define ILMTHREAD_EXPORT_TYPE OPENEXR_EXPORT_TYPE |
Definition at line 37 of file IlmThreadExport.h.
#define ILMTHREAD_HIDDEN OPENEXR_HIDDEN |
Definition at line 36 of file IlmThreadExport.h.
#define IMATH_EXPORT IMATH_PUBLIC_SYMBOL_ATTRIBUTE |
Definition at line 47 of file ImathExport.h.
#define IMATH_EXPORT_CONST extern const IMATH_PUBLIC_SYMBOL_ATTRIBUTE |
Definition at line 48 of file ImathExport.h.
#define IMATH_EXPORT_ENUM |
Definition at line 59 of file ImathExport.h.
#define IMATH_EXPORT_TEMPLATE_TYPE IMATH_EXPORT |
Definition at line 60 of file ImathExport.h.
#define IMATH_EXPORT_TYPE IMATH_EXPORT |
Definition at line 61 of file ImathExport.h.
#define IMF_EXPORT OPENEXR_EXPORT |
Definition at line 54 of file ImfExport.h.
#define IMF_EXPORT_ENUM OPENEXR_EXPORT_ENUM |
Definition at line 56 of file ImfExport.h.
#define IMF_EXPORT_EXTERN_TEMPLATE OPENEXR_EXPORT_EXTERN_TEMPLATE |
Definition at line 59 of file ImfExport.h.
#define IMF_EXPORT_TEMPLATE_INSTANCE OPENEXR_EXPORT_TEMPLATE_INSTANCE |
Definition at line 60 of file ImfExport.h.
#define IMF_EXPORT_TEMPLATE_TYPE OPENEXR_EXPORT_TEMPLATE_TYPE |
Definition at line 58 of file ImfExport.h.
#define IMF_EXPORT_TYPE OPENEXR_EXPORT_TYPE |
Definition at line 57 of file ImfExport.h.
#define IMF_HIDDEN OPENEXR_HIDDEN |
Definition at line 55 of file ImfExport.h.
#define IMFUTIL_EXPORT OPENEXR_EXPORT |
Definition at line 51 of file ImfUtilExport.h.
#define IMFUTIL_EXPORT_ENUM OPENEXR_EXPORT_ENUM |
Definition at line 53 of file ImfUtilExport.h.
#define IMFUTIL_EXPORT_EXTERN_TEMPLATE OPENEXR_EXPORT_EXTERN_TEMPLATE |
Definition at line 56 of file ImfUtilExport.h.
#define IMFUTIL_EXPORT_TEMPLATE_INSTANCE OPENEXR_EXPORT_TEMPLATE_INSTANCE |
Definition at line 57 of file ImfUtilExport.h.
#define IMFUTIL_EXPORT_TEMPLATE_TYPE OPENEXR_EXPORT_TEMPLATE_TYPE |
Definition at line 55 of file ImfUtilExport.h.
#define IMFUTIL_EXPORT_TYPE OPENEXR_EXPORT_TYPE |
Definition at line 54 of file ImfUtilExport.h.
#define IMFUTIL_HIDDEN OPENEXR_HIDDEN |
Definition at line 52 of file ImfUtilExport.h.
#define OPENEXR_DEPRECATED | ( | msg | ) | __attribute__ ((deprecated (msg))) |
Definition at line 178 of file OpenEXRConfig.h.
#define OPENEXR_EXPORT OPENEXR_PUBLIC_SYMBOL_ATTRIBUTE |
Definition at line 134 of file OpenEXRConfig.h.
#define OPENEXR_EXPORT_ENUM |
Definition at line 152 of file OpenEXRConfig.h.
#define OPENEXR_EXPORT_EXTERN_TEMPLATE OPENEXR_EXPORT |
Definition at line 140 of file OpenEXRConfig.h.
#define OPENEXR_EXPORT_TEMPLATE_INSTANCE |
Definition at line 154 of file OpenEXRConfig.h.
#define OPENEXR_EXPORT_TEMPLATE_TYPE OPENEXR_EXPORT |
Definition at line 153 of file OpenEXRConfig.h.
#define OPENEXR_EXPORT_TYPE OPENEXR_EXPORT |
Definition at line 139 of file OpenEXRConfig.h.
#define OPENEXR_HIDDEN OPENEXR_PRIVATE_SYMBOL_ATTRIBUTE |
Definition at line 135 of file OpenEXRConfig.h.
#define OPENEXR_PRIVATE_SYMBOL_ATTRIBUTE __attribute__ ((__visibility__ ("hidden"))) |
Definition at line 122 of file OpenEXRConfig.h.
#define OPENEXR_PUBLIC_SYMBOL_ATTRIBUTE __attribute__ ((__visibility__ ("default"))) |
Definition at line 120 of file OpenEXRConfig.h.