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