18#ifndef WIZARDSTOOLKIT_MAGICK_CONFIG_H
19#define WIZARDSTOOLKIT_MAGICK_CONFIG_H
21#if defined(__cplusplus) || defined(c_plusplus)
27#define WIZARDSTOOLKIT_STRING_QUOTE(str) #str
28#define WIZARDSTOOLKIT_STRING_XQUOTE(str) WIZARDSTOOLKIT_STRING_QUOTE(str)
30#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
31# if defined(__GNUC__) || defined(__clang__)
32# define MAGICK_COMPILER_WARNING(w) _Pragma(WIZARDSTOOLKIT_STRING_QUOTE(GCC warning w))
33# elif defined(_MSC_VER)
34# define MAGICK_COMPILER_WARNING(w) _Pragma(WIZARDSTOOLKIT_STRING_QUOTE(message(w)))
38#ifndef MAGICK_COMPILER_WARNING
39# define MAGICK_COMPILER_WARNING(w)
42#ifdef WIZARDSTOOLKIT__FILE_OFFSET_BITS
43# ifdef _FILE_OFFSET_BITS
44# if _FILE_OFFSET_BITS != WIZARDSTOOLKIT__FILE_OFFSET_BITS
45 MAGICK_COMPILER_WARNING(
"_FILE_OFFSET_BITS is already defined, but does not match WIZARDSTOOLKIT__FILE_OFFSET_BITS")
47# undef _FILE_OFFSET_BITS
50# ifndef _FILE_OFFSET_BITS
51# if WIZARDSTOOLKIT__FILE_OFFSET_BITS == 64
52# define _FILE_OFFSET_BITS 64
53# elif WIZARDSTOOLKIT__FILE_OFFSET_BITS == 32
54# define _FILE_OFFSET_BITS 32
56# define _FILE_OFFSET_BITS WIZARDSTOOLKIT__FILE_OFFSET_BITS
62#if !defined(WIZARDSTOOLKIT_QUANTUM_DEPTH) && defined(WIZARDSTOOLKIT_QUANTUM_DEPTH_OBSOLETE_IN_H)
63# warning "you should set WIZARDSTOOLKIT_QUANTUM_DEPTH to sensible default set it to configure time default"
64# warning "this is an obsolete behavior please fix your makefile"
65# define WIZARDSTOOLKIT_QUANTUM_DEPTH WIZARDSTOOLKIT_QUANTUM_DEPTH_OBSOLETE_IN_H
68#if defined __CYGWIN32__ && !defined __CYGWIN__
72# define __CYGWIN__ __CYGWIN32__
76#ifndef WIZARDSTOOLKIT_HDRI_SUPPORT
77#define WIZARDSTOOLKIT_ABI_SUFFIX "Q" WIZARDSTOOLKIT_STRING_XQUOTE(WIZARDSTOOLKIT_QUANTUM_DEPTH)
79#define WIZARDSTOOLKIT_ABI_SUFFIX "Q" WIZARDSTOOLKIT_STRING_XQUOTE(WIZARDSTOOLKIT_QUANTUM_DEPTH) "HDRI"
83#if !defined __CYGWIN__
84# if defined (_WIN32) || defined (_WIN64) || defined (__MSDOS__) || defined (__DJGPP__) || defined (__OS2__)
87# define WIZARDSTOOLKIT_DIR_SEPARATOR_CHAR '\\'
88# define WIZARDSTOOLKIT_DIR_SEPARATOR "\\"
89# define WIZARDSTOOLKIT_PATH_SEPARATOR_CHAR ';'
90# define WIZARDSTOOLKIT_PATH_SEPARATOR ";"
95#ifndef WIZARDSTOOLKIT_DIR_SEPARATOR_CHAR
98# define WIZARDSTOOLKIT_DIR_SEPARATOR_CHAR '/'
99# define WIZARDSTOOLKIT_DIR_SEPARATOR "/"
100# define WIZARDSTOOLKIT_PATH_SEPARATOR_CHAR ':'
101# define WIZARDSTOOLKIT_PATH_SEPARATOR ":"
104# if defined(WIZARDSTOOLKIT_POSIX_SUPPORT) || defined(__MINGW32__)
107#ifndef WIZARDSTOOLKIT_MODULES_DIRNAME
108# define WIZARDSTOOLKIT_MODULES_DIRNAME WIZARDSTOOLKIT_MODULES_BASEDIRNAME "-" WIZARDSTOOLKIT_ABI_SUFFIX
111#ifndef WIZARDSTOOLKIT_MODULES_PATH
112# define WIZARDSTOOLKIT_MODULES_PATH WIZARDSTOOLKIT_LIBRARY_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_MODULES_DIRNAME
115#ifndef WIZARDSTOOLKIT_MODULES_RELATIVE_PATH
116#define WIZARDSTOOLKIT_MODULES_RELATIVE_PATH WIZARDSTOOLKIT_LIBRARY_RELATIVE_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_MODULES_DIRNAME
120#ifndef WIZARDSTOOLKIT_CODER_PATH
122# define WIZARDSTOOLKIT_CODER_PATH "sys$login:"
124# define WIZARDSTOOLKIT_CODER_PATH WIZARDSTOOLKIT_MODULES_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_CODER_DIRNAME
128#ifndef WIZARDSTOOLKIT_CODER_RELATIVE_PATH
129# define WIZARDSTOOLKIT_CODER_RELATIVE_PATH WIZARDSTOOLKIT_MODULES_RELATIVE_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_CODER_DIRNAME
133#ifndef WIZARDSTOOLKIT_FILTER_PATH
135# define WIZARDSTOOLKIT_FILTER_PATH "sys$login:"
137# define WIZARDSTOOLKIT_FILTER_PATH WIZARDSTOOLKIT_MODULES_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_FILTER_DIRNAME
141#ifndef WIZARDSTOOLKIT_FILTER_RELATIVE_PATH
142# define WIZARDSTOOLKIT_FILTER_RELATIVE_PATH WIZARDSTOOLKIT_MODULES_RELATIVE_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_FILTER_DIRNAME
146#ifndef WIZARDSTOOLKIT_SHAREARCH_DIRNAME
147# define WIZARDSTOOLKIT_SHAREARCH_DIRNAME WIZARDSTOOLKIT_SHAREARCH_BASEDIRNAME "-" WIZARDSTOOLKIT_ABI_SUFFIX
150#ifndef WIZARDSTOOLKIT_SHAREARCH_PATH
151# define WIZARDSTOOLKIT_SHAREARCH_PATH WIZARDSTOOLKIT_LIBRARY_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_SHAREARCH_DIRNAME WIZARDSTOOLKIT_DIR_SEPARATOR
154#ifndef WIZARDSTOOLKIT_SHAREARCH_RELATIVE_PATH
155#define WIZARDSTOOLKIT_SHAREARCH_RELATIVE_PATH WIZARDSTOOLKIT_LIBRARY_RELATIVE_PATH WIZARDSTOOLKIT_DIR_SEPARATOR WIZARDSTOOLKIT_SHAREARCH_DIRNAME
162# define __has_builtin(x) 0
165#if defined(__GNUC__) && !defined(__clang__)
166# define WIZARDSTOOLKIT_DIAGNOSTIC_PUSH() \
167 _Pragma("GCC diagnostic push")
168# define WIZARDSTOOLKIT_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED() \
169 _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
170# define WIZARDSTOOLKIT_DIAGNOSTIC_POP() \
171 _Pragma("GCC diagnostic pop")
173# define WIZARDSTOOLKIT_DIAGNOSTIC_PUSH()
174# define WIZARDSTOOLKIT_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED()
175# define WIZARDSTOOLKIT_DIAGNOSTIC_POP()
178#define WIZARDSTOOLKIT_BITS_BELOW(power_of_2) \
181#define WIZARDSTOOLKIT_MAX_ALIGNMENT_PADDING(power_of_2) \
182 WIZARDSTOOLKIT_BITS_BELOW(power_of_2)
184#define WIZARDSTOOLKIT_IS_NOT_ALIGNED(n, power_of_2) \
185 ((n) & WIZARDSTOOLKIT_BITS_BELOW(power_of_2))
187#define WIZARDSTOOLKIT_IS_NOT_POWER_OF_2(n) \
188 WIZARDSTOOLKIT_IS_NOT_ALIGNED((n), (n))
190#define WIZARDSTOOLKIT_ALIGN_DOWN(n, power_of_2) \
191 ((n) & ~WIZARDSTOOLKIT_BITS_BELOW(power_of_2))
193#define WIZARDSTOOLKIT_ALIGN_UP(n, power_of_2) \
194 WIZARDSTOOLKIT_ALIGN_DOWN((n) + WIZARDSTOOLKIT_MAX_ALIGNMENT_PADDING(power_of_2),power_of_2)
196#if defined(__cplusplus) || defined(c_plusplus)
#define MAGICK_COMPILER_WARNING(w)