summaryrefslogtreecommitdiff
path: root/libs/glibmm2/glibmmconfig.h.in
blob: dddcc07da5979ac81a17f0fcafe3dfcda6515277 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef _GLIBMM_CONFIG_H
#define _GLIBMM_CONFIG_H 1

/* version numbers */
#undef GLIBMM_MAJOR_VERSION
#undef GLIBMM_MINOR_VERSION
#undef GLIBMM_MICRO_VERSION

// detect common platforms
#if defined(_WIN32)
// Win32 compilers have a lot of varation
#if defined(_MSC_VER)
#define GLIBMM_MSC
#define GLIBMM_WIN32
#define GLIBMM_DLL
#elif defined(__CYGWIN__)
#define GLIBMM_CONFIGURE
#elif defined(__MINGW32__)
#define GLIBMM_WIN32
#define GLIBMM_CONFIGURE
#else
//AIX clR compiler complains about this even though it doesn't get this far:
//#warning "Unknown architecture (send me gcc --dumpspecs or equiv)"
#endif
#else
#define GLIBMM_CONFIGURE
#endif /* _WIN32 */

#ifdef GLIBMM_CONFIGURE
/* compiler feature tests that are used during compile time and run-time
   by gtk-- only. tests used by gdk-- and gtk-- should go into
   gdk--config.h.in */
#undef GLIBMM_CXX_HAVE_MUTABLE
#undef GLIBMM_CXX_HAVE_NAMESPACES
//#undef GLIBMM_CXX_GAUB
//#undef GLIBMM_CXX_AMBIGUOUS_TEMPLATES
#undef GLIBMM_HAVE_NAMESPACE_STD
#undef GLIBMM_HAVE_STD_ITERATOR_TRAITS
#undef GLIBMM_HAVE_SUN_REVERSE_ITERATOR
#undef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS
#undef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
#undef GLIBMM_COMPILER_SUN_FORTE
#undef GLIBMM_DEBUG_REFCOUNTING
#undef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
#undef GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS
#undef GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC
#undef GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
#endif

#ifdef GLIBMM_MSC
  #define GLIBMM_CXX_HAVE_MUTABLE 1
  #define GLIBMM_CXX_HAVE_NAMESPACES 1
  #define GLIBMM_HAVE_NAMESPACE_STD 1
  #define GLIBMM_HAVE_STD_ITERATOR_TRAITS 1
  #define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS 2
  #define GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 1
  #define GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1
  #define GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1
  #define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1
  #define GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS 1
  #pragma warning (disable: 4786 4355 4800 4181)
#endif

#ifndef GLIBMM_HAVE_NAMESPACE_STD
#  define GLIBMM_USING_STD(Symbol) namespace std { using ::Symbol; }
#else
#  define GLIBMM_USING_STD(Symbol) /* empty */
#endif

#ifdef GLIBMM_DLL
  #if defined(GLIBMM_BUILD) && defined(_WINDLL)
    /* Do not dllexport as it is handled by gendef on MSVC */
    #define GLIBMM_API 
  #elif !defined(GLIBMM_BUILD)
    #define GLIBMM_API __declspec(dllimport)
  #else
    /* Build a static library */
    #define GLIBMM_API
  #endif /* GLIBMM_BUILD - _WINDLL */
#else
  #define GLIBMM_API
#endif /* GLIBMM_DLL */

#endif /* _GLIBMM_CONFIG_H */