#include "Magick++/Color.h"
#include "Magick++/Geometry.h"
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
# if defined(MAGICK_PLUSPLUS_IMPLEMENTATION)
# define MagickDrawableExtern
# else
# endif // MAGICK_PLUSPLUS_IMPLEMENTATION
#else
# define MagickDrawableExtern
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
namespace Magick
{
typedef std::list<Magick::Coordinate> CoordinateList;
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
MagickDrawableExtern template class MagickPPExport
std::allocator<Magick::Coordinate>;
// MagickDrawableExtern template class MagickPPExport
// std::list<Magick::Coordinate, std::allocator<Magick::Coordinate> >;
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
// Compare two Coordinate objects regardless of LHS/RHS
extern MagickPPExport int operator == ( const Coordinate& left_,
typedef std::list<Magick::Drawable> DrawableList;
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
MagickDrawableExtern template class MagickPPExport
std::allocator<Magick::Drawable>;
// MagickDrawableExtern template class MagickPPExport
// std::list<Magick::Drawable, std::allocator<Magick::Drawable> >;
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
//
// Base class for all drawable path elements for use with
typedef std::list<Magick::VPath> VPathList;
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
MagickDrawableExtern template class MagickPPExport
std::allocator<Magick::VPath>;
// MagickDrawableExtern template class MagickPPExport
// std::list<Magick::VPath, std::allocator<Magick::VPath> >;
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
//
// Drawable Objects
typedef std::list<Magick::PathArcArgs> PathArcArgsList;
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
MagickDrawableExtern template class MagickPPExport
std::allocator<Magick::PathArcArgs>;
// MagickDrawableExtern template class MagickPPExport
// std::list<Magick::PathArcArgs, std::allocator<Magick::PathArcArgs> >;
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
// Path Arc (Elliptical Arc)
class MagickPPExport PathArcAbs : public VPathBase
typedef std::list<Magick::PathCurvetoArgs> PathCurveToArgsList;
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
MagickDrawableExtern template class MagickPPExport
std::allocator<Magick::PathCurvetoArgs>;
// MagickDrawableExtern template class MagickPPExport
// std::list<Magick::PathCurvetoArgs, std::allocator<Magick::PathCurvetoArgs> >;
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
class MagickPPExport PathCurvetoAbs : public VPathBase
{
typedef std::list<Magick::PathQuadraticCurvetoArgs> PathQuadraticCurvetoArgsList;
-#if defined(MagickDLLBuild)
+#if defined(MagickDLLExplicitTemplate)
MagickDrawableExtern template class MagickPPExport
std::allocator<Magick::PathQuadraticCurvetoArgs>;
// MagickDrawableExtern template class MagickPPExport
// std::list<Magick::PathQuadraticCurvetoArgs, std::allocator<Magick::PathQuadraticCurvetoArgs> >;
-#endif // MagickDLLBuild
+#endif // MagickDLLExplicitTemplate
class MagickPPExport PathQuadraticCurvetoAbs : public VPathBase
{
// using code is dynamic, STATIC_MAGICK may be defined in the project to
// override triggering dynamic library behavior.
//
-# define MagickDLLBuild
-# define MagickPPPrivate
# if defined(_VISUALC_)
+# define MagickDLLExplicitTemplate
# pragma warning( disable: 4273 ) /* Disable the stupid dll linkage warnings */
# pragma warning( disable: 4251 )
# endif
# else
# define MagickPPExport __declspec(dllimport)
# endif
+# define MagickPPPrivate extern __declspec(dllimport)
# if defined(_VISUALC_)
# pragma message( "Magick++ lib DLL import" )
# endif
# else
-# if defined(__BORLANDC__)
+# if defined(__BORLANDC__) || defined(__MINGW32__)
# define MagickPPExport __declspec(dllexport)
-# pragma message( "BCBMagick++ lib DLL export" )
+# define MagickPPPrivate __declspec(dllexport)
+# if defined(__BORLANDC__)
+# pragma message( "BCBMagick++ lib DLL export" )
+# endif
# else
# if defined(__GNUC__)
# define MagickPPExport __attribute__ ((dllexport))
# else
# define MagickPPExport __declspec(dllexport)
# endif
+# define MagickPPPrivate extern __declspec(dllexport)
# endif
# if defined(_VISUALC_)
# pragma message( "Magick++ lib DLL export" )
# endif
# else
# define MagickPPExport
+# define MagickPPPrivate
# if defined(_VISUALC_)
# pragma message( "Magick++ lib static interface" )
# endif