File indexing completed on 2025-03-13 09:14:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef MAGICKCORE_METHOD_ATTRIBUTE_H
0019 #define MAGICKCORE_METHOD_ATTRIBUTE_H
0020
0021 #if defined(__cplusplus) || defined(c_plusplus)
0022 extern "C" {
0023 #endif
0024
0025 #if defined(__BORLANDC__) && defined(_DLL)
0026 # define _MAGICKDLL_
0027 # define _MAGICKLIB_
0028 # define MAGICKCORE_MODULES_SUPPORT
0029 # undef MAGICKCORE_BUILD_MODULES
0030 #endif
0031
0032 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0033 # define MagickPrivate
0034 # if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
0035 # define _MAGICKDLL_
0036 # endif
0037 # if defined(_MAGICKDLL_)
0038 # if defined(_VISUALC_)
0039 # pragma warning( disable: 4273 )
0040 # endif
0041 # if !defined(_MAGICKLIB_)
0042 # if defined(__clang__) || defined(__GNUC__)
0043 # define MagickExport __attribute__ ((dllimport))
0044 # else
0045 # define MagickExport __declspec(dllimport)
0046 # endif
0047 # else
0048 # if defined(__clang__) || defined(__GNUC__)
0049 # define MagickExport __attribute__ ((dllexport))
0050 # else
0051 # define MagickExport __declspec(dllexport)
0052 # endif
0053 # endif
0054 # else
0055 # define MagickExport
0056 # endif
0057 # if defined(_DLL) && !defined(_LIB)
0058 # if defined(__clang__) || defined(__GNUC__)
0059 # define ModuleExport __attribute__ ((dllexport))
0060 # else
0061 # define ModuleExport __declspec(dllexport)
0062 # endif
0063 # else
0064 # define ModuleExport
0065 # endif
0066 # if defined(_VISUALC_)
0067 # pragma warning(disable : 4018)
0068 # pragma warning(disable : 4068)
0069 # pragma warning(disable : 4244)
0070 # pragma warning(disable : 4142)
0071 # pragma warning(disable : 4800)
0072 # pragma warning(disable : 4786)
0073 # pragma warning(disable : 4996)
0074 # endif
0075 #else
0076 # if defined(__clang__) || (__GNUC__ >= 4)
0077 # define MagickExport __attribute__ ((visibility ("default")))
0078 # define MagickPrivate __attribute__ ((visibility ("hidden")))
0079 # else
0080 # define MagickExport
0081 # define MagickPrivate
0082 # endif
0083 # define ModuleExport MagickExport
0084 #endif
0085
0086 #define MagickCoreSignature 0xabacadabUL
0087 #if !defined(MagickPathExtent)
0088 # define MagickPathExtent 4096
0089 #endif
0090 #define MaxTextExtent MagickPathExtent
0091 #define MagickTimeExtent 26
0092
0093 #if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
0094 # define magick_aligned(x,y) x __attribute__((aligned(y)))
0095 # define magick_attribute __attribute__
0096 # define magick_unused(x) magick_unused_ ## x __attribute__((unused))
0097 # define magick_unreferenced(x)
0098 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0099 # define magick_aligned(x,y) __declspec(align(y)) x
0100 # define magick_attribute(x)
0101 # define magick_unused(x) x
0102 # define magick_unreferenced(x) (x)
0103 #else
0104 # define magick_aligned(x,y)
0105 # define magick_attribute(x)
0106 # define magick_unused(x) x
0107 # define magick_unreferenced(x)
0108 #endif
0109
0110 #if !defined(__clang__) && (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
0111 # define magick_alloc_size(x) __attribute__((__alloc_size__(x)))
0112 # define magick_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y)))
0113 # define magick_fallthrough __attribute__((fallthrough))
0114 #else
0115 # define magick_alloc_size(x)
0116 # define magick_alloc_sizes(x,y)
0117 # define magick_fallthrough
0118 #endif
0119
0120 #if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
0121 # define magick_cold_spot __attribute__((__cold__))
0122 # define magick_hot_spot __attribute__((__hot__))
0123 #else
0124 # define magick_cold_spot
0125 # define magick_hot_spot
0126 #endif
0127
0128 #if defined(__cplusplus) || defined(c_plusplus)
0129 }
0130 #endif
0131
0132 #endif