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