summaryrefslogtreecommitdiff
path: root/gio/giommconfig.h.in
blob: 6bf690f55b58b0a5535b0893c94a779204965c30 (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
86
87
88
89
90
#ifndef _GIOMM_CONFIG_H
#define _GIOMM_CONFIG_H 1

/* version numbers */
#undef GIOMM_MAJOR_VERSION
#undef GIOMM_MINOR_VERSION
#undef GIOMM_MICRO_VERSION

// detect common platforms
#if defined(_WIN32)
// Win32 compilers have a lot of varation
#if defined(_MSC_VER)
#define GIOMM_MSC
#define GIOMM_WIN32
#define GIOMM_DLL
#elif defined(__CYGWIN__)
#define GIOMM_CONFIGURE
#elif defined(__MINGW32__)
#define GIOMM_WIN32
#define GIOMM_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 GIOMM_CONFIGURE
#endif /* _WIN32 */

#ifdef GIOMM_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 GIOMM_STATIC_LIB
#undef GIOMM_CXX_HAVE_MUTABLE
#undef GIOMM_CXX_HAVE_NAMESPACES
//#undef GIOMM_CXX_GAUB
//#undef GIOMM_CXX_AMBIGUOUS_TEMPLATES
#undef GIOMM_HAVE_NAMESPACE_STD
#undef GIOMM_HAVE_STD_ITERATOR_TRAITS
#undef GIOMM_HAVE_SUN_REVERSE_ITERATOR
#undef GIOMM_HAVE_TEMPLATE_SEQUENCE_CTORS
#undef GIOMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS
#undef GIOMM_COMPILER_SUN_FORTE
#undef GIOMM_DEBUG_REFCOUNTING
#undef GIOMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION
#undef GIOMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS
#undef GIOMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC
#undef GIOMM_HAVE_ALLOWS_STATIC_INLINE_NPOS
#endif

#ifdef GIOMM_MSC
  #define GIOMM_CXX_HAVE_MUTABLE 1
  #define GIOMM_CXX_HAVE_NAMESPACES 1
  #define GIOMM_HAVE_NAMESPACE_STD 1
  #define GIOMM_HAVE_STD_ITERATOR_TRAITS 1
  #define GIOMM_HAVE_TEMPLATE_SEQUENCE_CTORS 2
  #define GIOMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 1
  #define GIOMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1
  #define GIOMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1
  #define GIOMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1
  #pragma warning (disable: 4786 4355 4800 4181)
#endif

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

// Enable DLL-specific stuff only when not building a static library
#if !defined(__CYGWIN__) && defined(__MINGW32__) && !defined(GIOMM_STATIC_LIB)
  #define GIOMM_DLL
#endif

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

#endif /* _GIOMM_CONFIG_H */