1 #ifndef __cxxtest__Flags_h__
2 #define __cxxtest__Flags_h__
4 //
5 // These are the flags that control CxxTest
6 //
8 #if !defined(CXXTEST_FLAGS)
9 # define CXXTEST_FLAGS
10 #endif // !CXXTEST_FLAGS
12 #if defined(CXXTEST_HAVE_EH) && !defined(_CXXTEST_HAVE_EH)
13 # define _CXXTEST_HAVE_EH
14 #endif // CXXTEST_HAVE_EH
16 #if defined(CXXTEST_HAVE_STD) && !defined(_CXXTEST_HAVE_STD)
17 # define _CXXTEST_HAVE_STD
18 #endif // CXXTEST_HAVE_STD
20 #if defined(CXXTEST_OLD_TEMPLATE_SYNTAX) && !defined(_CXXTEST_OLD_TEMPLATE_SYNTAX)
21 # define _CXXTEST_OLD_TEMPLATE_SYNTAX
22 #endif // CXXTEST_OLD_TEMPLATE_SYNTAX
24 #if defined(CXXTEST_OLD_STD) && !defined(_CXXTEST_OLD_STD)
25 # define _CXXTEST_OLD_STD
26 #endif // CXXTEST_OLD_STD
28 #if defined(CXXTEST_ABORT_TEST_ON_FAIL) && !defined(_CXXTEST_ABORT_TEST_ON_FAIL)
29 # define _CXXTEST_ABORT_TEST_ON_FAIL
30 #endif // CXXTEST_ABORT_TEST_ON_FAIL
32 #if defined(CXXTEST_NO_COPY_CONST) && !defined(_CXXTEST_NO_COPY_CONST)
33 # define _CXXTEST_NO_COPY_CONST
34 #endif // CXXTEST_NO_COPY_CONST
36 #if defined(CXXTEST_FACTOR) && !defined(_CXXTEST_FACTOR)
37 # define _CXXTEST_FACTOR
38 #endif // CXXTEST_FACTOR
40 #if defined(CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION) && !defined(_CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION)
41 # define _CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION
42 #endif // CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION
44 #if defined(CXXTEST_LONGLONG)
45 # if defined(_CXXTEST_LONGLONG)
46 # undef _CXXTEST_LONGLONG
47 # endif
48 # define _CXXTEST_LONGLONG CXXTEST_LONGLONG
49 #endif // CXXTEST_LONGLONG
51 #ifndef CXXTEST_MAX_DUMP_SIZE
52 # define CXXTEST_MAX_DUMP_SIZE 0
53 #endif // CXXTEST_MAX_DUMP_SIZE
55 #if defined(_CXXTEST_ABORT_TEST_ON_FAIL) && !defined(CXXTEST_DEFAULT_ABORT)
56 # define CXXTEST_DEFAULT_ABORT true
57 #endif // _CXXTEST_ABORT_TEST_ON_FAIL && !CXXTEST_DEFAULT_ABORT
59 #if !defined(CXXTEST_DEFAULT_ABORT)
60 # define CXXTEST_DEFAULT_ABORT false
61 #endif // !CXXTEST_DEFAULT_ABORT
63 #if defined(_CXXTEST_ABORT_TEST_ON_FAIL) && !defined(_CXXTEST_HAVE_EH)
64 # warning "CXXTEST_ABORT_TEST_ON_FAIL is meaningless without CXXTEST_HAVE_EH"
65 # undef _CXXTEST_ABORT_TEST_ON_FAIL
66 #endif // _CXXTEST_ABORT_TEST_ON_FAIL && !_CXXTEST_HAVE_EH
68 //
69 // Some minimal per-compiler configuration to allow us to compile
70 //
72 #ifdef __BORLANDC__
73 # if __BORLANDC__ <= 0x520 // Borland C++ 5.2 or earlier
74 # ifndef _CXXTEST_OLD_STD
75 # define _CXXTEST_OLD_STD
76 # endif
77 # ifndef _CXXTEST_OLD_TEMPLATE_SYNTAX
78 # define _CXXTEST_OLD_TEMPLATE_SYNTAX
79 # endif
80 # endif
81 # if __BORLANDC__ >= 0x540 // C++ Builder 4.0 or later
82 # ifndef _CXXTEST_NO_COPY_CONST
83 # define _CXXTEST_NO_COPY_CONST
84 # endif
85 # ifndef _CXXTEST_LONGLONG
86 # define _CXXTEST_LONGLONG __int64
87 # endif
88 # endif
89 #endif // __BORLANDC__
91 #ifdef _MSC_VER // Visual C++
92 # ifndef _CXXTEST_LONGLONG
93 # define _CXXTEST_LONGLONG __int64
94 # endif
95 # if (_MSC_VER >= 0x51E)
96 # ifndef _CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION
97 # define _CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION
98 # endif
99 # endif
100 # pragma warning( disable : 4127 )
101 # pragma warning( disable : 4290 )
102 # pragma warning( disable : 4511 )
103 # pragma warning( disable : 4512 )
104 # pragma warning( disable : 4514 )
105 #endif // _MSC_VER
107 #ifdef __GNUC__
108 # if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 9)
109 # ifndef _CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION
110 # define _CXXTEST_PARTIAL_TEMPLATE_SPECIALIZATION
111 # endif
112 # endif
113 #endif // __GNUC__
115 #ifdef __DMC__ // Digital Mars
116 # ifndef _CXXTEST_OLD_STD
117 # define _CXXTEST_OLD_STD
118 # endif
119 #endif
121 #endif // __cxxtest__Flags_h__