Imported Upstream version 2.4.1
[platform/upstream/libsigc++.git] / sigc++config.h.in
1
2 /* Define to omit deprecated API from the library. */
3 #undef SIGCXX_DISABLE_DEPRECATED
4
5 /* Major version number of sigc++. */
6 #undef SIGCXX_MAJOR_VERSION
7
8 /* Micro version number of sigc++. */
9 #undef SIGCXX_MICRO_VERSION
10
11 /* Minor version number of sigc++. */
12 #undef SIGCXX_MINOR_VERSION
13
14 /* Detect Win32 platform */
15 #ifdef _WIN32
16 # if defined(_MSC_VER)
17 #  define SIGC_MSC 1
18 #  define SIGC_WIN32 1
19 #  define SIGC_DLL 1
20 # elif defined(__CYGWIN__)
21 #  define SIGC_CONFIGURE 1
22 # elif defined(__MINGW32__)
23 #  define SIGC_WIN32 1
24 #  define SIGC_CONFIGURE 1
25 # else
26 #  error "libsigc++ config: Unknown win32 architecture (send me gcc --dumpspecs or equiv)"
27 # endif
28 #else /* !_WIN32 */
29 # define SIGC_CONFIGURE 1
30 #endif /* !_WIN32 */
31
32 #ifdef SIGC_MSC
33 /*
34  * MS VC7 Warning 4251 says that the classes to any member objects in an
35  * exported class must be also be exported.  Some of the libsigc++
36  * template classes contain std::list members.  MS KB article 168958 says
37  * that it's not possible to export a std::list instantiation due to some
38  * wacky class nesting issues, so our only options are to ignore the
39  * warning or to modify libsigc++ to remove the std::list dependency.
40  * AFAICT, the std::list members are used internally by the library code
41  * and don't need to be used from the outside, and ignoring the warning
42  * seems to have no adverse effects, so that seems like a good enough
43  * solution for now.
44  */
45 # pragma warning(disable:4251)
46
47 # define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
48 # define SIGC_NEW_DELETE_IN_LIBRARY_ONLY 1 /* To keep ABI compatibility */
49 # define SIGC_HAVE_NAMESPACE_STD 1
50
51 #else /* SIGC_MSC */
52
53 /* does the C++ compiler support the use of a particular specialization when
54    calling operator() template methods. */
55 # undef SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
56
57 /* Defined when the libstdc++ declares the std-namespace */
58 # undef SIGC_HAVE_NAMESPACE_STD
59
60 /* Define if the non-standard Sun reverse_iterator must be used. */
61 # undef SIGC_HAVE_SUN_REVERSE_ITERATOR
62
63 /* does the C++ compiler support the use of a particular specialization when
64    calling operator() template methods omitting the template keyword. */
65 # undef SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
66
67 /* does c++ compiler allows usage of member function in initialization of
68    static member field. */
69 # undef SIGC_SELF_REFERENCE_IN_MEMBER_INITIALIZATION
70
71 #endif /* !SIGC_MSC */
72
73 #ifdef SIGC_HAVE_NAMESPACE_STD
74 # define SIGC_USING_STD(Symbol) /* empty */
75 #else
76 # define SIGC_USING_STD(Symbol) namespace std { using ::Symbol; }
77 #endif
78
79 #ifdef SIGC_DLL
80 # if defined(SIGC_BUILD) && defined(_WINDLL)
81 #  define SIGC_API __declspec(dllexport)
82 # elif !defined(SIGC_BUILD)
83 #  define SIGC_API __declspec(dllimport)
84 # else
85 #  define SIGC_API
86 # endif
87 #else /* !SIGC_DLL */
88 # define SIGC_API
89 #endif /* !SIGC_DLL */