Go to the documentation of this file.
18 #ifndef MAGICKCORE_METHOD_ATTRIBUTE_H
19 #define MAGICKCORE_METHOD_ATTRIBUTE_H
21 #if defined(__cplusplus) || defined(c_plusplus)
25 #if defined(__BORLANDC__) && defined(_DLL)
26 # pragma message("BCBMagick lib DLL export interface")
29 # define MAGICKCORE_MODULES_SUPPORT
30 # undef MAGICKCORE_BUILD_MODULES
33 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
34 # define MagickPrivate
35 # if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
38 # if defined(_MAGICKDLL_)
39 # if defined(_VISUALC_)
40 # pragma warning( disable: 4273 )
42 # if !defined(_MAGICKLIB_)
43 # if defined(__clang__) || defined(__GNUC__)
44 # define MagickExport __attribute__ ((dllimport))
46 # define MagickExport __declspec(dllimport)
48 # if defined(_VISUALC_)
49 # pragma message( "MagickCore lib DLL import interface" )
52 # if defined(__clang__) || defined(__GNUC__)
53 # define MagickExport __attribute__ ((dllexport))
55 # define MagickExport __declspec(dllexport)
57 # if defined(_VISUALC_)
58 # pragma message( "MagickCore lib DLL export interface" )
63 # if defined(_VISUALC_)
64 # pragma message( "MagickCore lib static interface" )
68 # if defined(_DLL) && !defined(_LIB)
69 # if defined(__clang__) || defined(__GNUC__)
70 # define ModuleExport __attribute__ ((dllexport))
72 # define ModuleExport __declspec(dllexport)
74 # if defined(_VISUALC_)
75 # pragma message( "MagickCore module DLL export interface" )
79 # if defined(_VISUALC_)
80 # pragma message( "MagickCore module static interface" )
84 # if defined(_VISUALC_)
85 # pragma warning(disable : 4018)
86 # pragma warning(disable : 4068)
87 # pragma warning(disable : 4244)
88 # pragma warning(disable : 4142)
89 # pragma warning(disable : 4800)
90 # pragma warning(disable : 4786)
91 # pragma warning(disable : 4996)
94 # if defined(__clang__) || (__GNUC__ >= 4)
95 # define MagickExport __attribute__ ((visibility ("default")))
96 # define MagickPrivate __attribute__ ((visibility ("hidden")))
99 # define MagickPrivate
101 # define ModuleExport MagickExport
104 #define MagickSignature 0xabacadabUL
105 #if !defined(MaxTextExtent)
106 # define MaxTextExtent 4096
109 #if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
110 # define magick_aligned(x,y) x __attribute__((aligned(y)))
111 # define magick_attribute __attribute__
112 # define magick_unused(x) magick_unused_ ## x __attribute__((unused))
113 # define magick_unreferenced(x)
114 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
115 # define magick_aligned(x,y) __declspec(align(y)) x
116 # define magick_attribute(x)
117 # define magick_unused(x) x
118 # define magick_unreferenced(x) (x)
120 # define magick_aligned(x,y)
121 # define magick_attribute(x)
122 # define magick_unused(x) x
123 # define magick_unreferenced(x)
126 #if !defined(__clang__) && (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
127 # define magick_alloc_size(x) __attribute__((__alloc_size__(x)))
128 # define magick_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y)))
130 # define magick_alloc_size(x)
131 # define magick_alloc_sizes(x,y)
134 #if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
135 # define magick_cold_spot __attribute__((__cold__))
136 # define magick_hot_spot __attribute__((__hot__))
138 # define magick_cold_spot
139 # define magick_hot_spot
142 #if defined(__cplusplus) || defined(c_plusplus)