sl@0
|
1 |
/*=============================================================================
|
sl@0
|
2 |
Boost.Wave: A Standard compliant C++ preprocessor library
|
sl@0
|
3 |
|
sl@0
|
4 |
Global application configuration
|
sl@0
|
5 |
|
sl@0
|
6 |
http://www.boost.org/
|
sl@0
|
7 |
|
sl@0
|
8 |
Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
|
sl@0
|
9 |
Software License, Version 1.0. (See accompanying file
|
sl@0
|
10 |
LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
sl@0
|
11 |
=============================================================================*/
|
sl@0
|
12 |
|
sl@0
|
13 |
#if !defined(WAVE_CONFIG_HPP_F143F90A_A63F_4B27_AC41_9CA4F14F538D_INCLUDED)
|
sl@0
|
14 |
#define WAVE_CONFIG_HPP_F143F90A_A63F_4B27_AC41_9CA4F14F538D_INCLUDED
|
sl@0
|
15 |
|
sl@0
|
16 |
#include <boost/config.hpp>
|
sl@0
|
17 |
#include <boost/detail/workaround.hpp>
|
sl@0
|
18 |
#include <boost/version.hpp>
|
sl@0
|
19 |
#include <boost/spirit/version.hpp>
|
sl@0
|
20 |
#include <boost/wave/wave_version.hpp>
|
sl@0
|
21 |
|
sl@0
|
22 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
23 |
// Define the maximal include nesting depth allowed. If this value isn't
|
sl@0
|
24 |
// defined it defaults to 1024
|
sl@0
|
25 |
//
|
sl@0
|
26 |
// To define a new initial include nesting define the following constant
|
sl@0
|
27 |
// before including this file.
|
sl@0
|
28 |
//
|
sl@0
|
29 |
#if !defined(BOOST_WAVE_MAX_INCLUDE_LEVEL_DEPTH)
|
sl@0
|
30 |
#define BOOST_WAVE_MAX_INCLUDE_LEVEL_DEPTH 1024
|
sl@0
|
31 |
#endif
|
sl@0
|
32 |
|
sl@0
|
33 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
34 |
// Decide, whether to support variadics and placemarkers
|
sl@0
|
35 |
//
|
sl@0
|
36 |
// To implement support variadics and placemarkers define the following to
|
sl@0
|
37 |
// something not equal to zero.
|
sl@0
|
38 |
//
|
sl@0
|
39 |
#if !defined(BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS)
|
sl@0
|
40 |
#define BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS 1
|
sl@0
|
41 |
#endif
|
sl@0
|
42 |
|
sl@0
|
43 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
44 |
// Decide, whether to implement a #warning directive as an extension to the
|
sl@0
|
45 |
// C++ Standard (same as #error, but emits a warning, not an error)
|
sl@0
|
46 |
//
|
sl@0
|
47 |
// To disable the implementation of #warning directives, define the following
|
sl@0
|
48 |
// constant as zero before including this file.
|
sl@0
|
49 |
//
|
sl@0
|
50 |
#if !defined(BOOST_WAVE_SUPPORT_WARNING_DIRECTIVE)
|
sl@0
|
51 |
#define BOOST_WAVE_SUPPORT_WARNING_DIRECTIVE 1
|
sl@0
|
52 |
#endif
|
sl@0
|
53 |
|
sl@0
|
54 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
55 |
// Decide, whether to implement #pragma once
|
sl@0
|
56 |
//
|
sl@0
|
57 |
// To disable the implementation of #pragma once, define the following
|
sl@0
|
58 |
// constant as zero before including this file.
|
sl@0
|
59 |
//
|
sl@0
|
60 |
#if !defined(BOOST_WAVE_SUPPORT_PRAGMA_ONCE)
|
sl@0
|
61 |
#define BOOST_WAVE_SUPPORT_PRAGMA_ONCE 1
|
sl@0
|
62 |
#endif
|
sl@0
|
63 |
|
sl@0
|
64 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
65 |
// Decide, whether to implement #pragma message("")
|
sl@0
|
66 |
//
|
sl@0
|
67 |
// To disable the implementation of #pragma message(""), define the following
|
sl@0
|
68 |
// constant as zero before including this file.
|
sl@0
|
69 |
//
|
sl@0
|
70 |
#if !defined(BOOST_WAVE_SUPPORT_PRAGMA_MESSAGE)
|
sl@0
|
71 |
#define BOOST_WAVE_SUPPORT_PRAGMA_MESSAGE 1
|
sl@0
|
72 |
#endif
|
sl@0
|
73 |
|
sl@0
|
74 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
75 |
// Decide, whether to implement #include_next
|
sl@0
|
76 |
// Please note, that this is an extension to the C++ Standard.
|
sl@0
|
77 |
//
|
sl@0
|
78 |
// To disable the implementation of #include_next, define the following
|
sl@0
|
79 |
// constant as zero before including this file.
|
sl@0
|
80 |
//
|
sl@0
|
81 |
#if !defined(BOOST_WAVE_SUPPORT_INCLUDE_NEXT)
|
sl@0
|
82 |
#define BOOST_WAVE_SUPPORT_INCLUDE_NEXT 1
|
sl@0
|
83 |
#endif
|
sl@0
|
84 |
|
sl@0
|
85 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
86 |
// Undefine the following, to enable some MS specific language extensions:
|
sl@0
|
87 |
// __int8, __int16, __int32, __int64, __based, __declspec, __cdecl,
|
sl@0
|
88 |
// __fastcall, __stdcall, __try, __except, __finally, __leave, __inline,
|
sl@0
|
89 |
// __asm, #region, #endregion
|
sl@0
|
90 |
//
|
sl@0
|
91 |
// Note: By default this is enabled for Windows based systems, otherwise it's
|
sl@0
|
92 |
// disabled.
|
sl@0
|
93 |
#if !defined(BOOST_WAVE_SUPPORT_MS_EXTENSIONS)
|
sl@0
|
94 |
#if defined(BOOST_WINDOWS)
|
sl@0
|
95 |
#define BOOST_WAVE_SUPPORT_MS_EXTENSIONS 1
|
sl@0
|
96 |
#else
|
sl@0
|
97 |
#define BOOST_WAVE_SUPPORT_MS_EXTENSIONS 0
|
sl@0
|
98 |
#endif
|
sl@0
|
99 |
#endif
|
sl@0
|
100 |
|
sl@0
|
101 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
102 |
// Allow the message body of the #error and #warning directives to be
|
sl@0
|
103 |
// preprocessed before the diagnostic is issued.
|
sl@0
|
104 |
//
|
sl@0
|
105 |
// To disable preprocessing of the body of #error and #warning directives,
|
sl@0
|
106 |
// define the following constant as zero before including this file.
|
sl@0
|
107 |
//
|
sl@0
|
108 |
#if !defined(BOOST_WAVE_PREPROCESS_ERROR_MESSAGE_BODY)
|
sl@0
|
109 |
#define BOOST_WAVE_PREPROCESS_ERROR_MESSAGE_BODY 1
|
sl@0
|
110 |
#endif
|
sl@0
|
111 |
|
sl@0
|
112 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
113 |
// Allow the #pragma directives to be returned to the caller (optionally after
|
sl@0
|
114 |
// preprocessing the body)
|
sl@0
|
115 |
//
|
sl@0
|
116 |
// To disable the library to emit unknown #pragma directives, define the
|
sl@0
|
117 |
// following constant as zero before including this file.
|
sl@0
|
118 |
//
|
sl@0
|
119 |
#if !defined(BOOST_WAVE_EMIT_PRAGMA_DIRECTIVES)
|
sl@0
|
120 |
#define BOOST_WAVE_EMIT_PRAGMA_DIRECTIVES 1
|
sl@0
|
121 |
#endif
|
sl@0
|
122 |
|
sl@0
|
123 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
124 |
// Allow the body of a #pragma directive to be preprocessed before the
|
sl@0
|
125 |
// directive is returned to the caller.
|
sl@0
|
126 |
//
|
sl@0
|
127 |
// To disable the preprocessing of the body of #pragma directives, define the
|
sl@0
|
128 |
// following constant as zero before including this file.
|
sl@0
|
129 |
//
|
sl@0
|
130 |
#if !defined(BOOST_WAVE_PREPROCESS_PRAGMA_BODY)
|
sl@0
|
131 |
#define BOOST_WAVE_PREPROCESS_PRAGMA_BODY 1
|
sl@0
|
132 |
#endif
|
sl@0
|
133 |
|
sl@0
|
134 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
135 |
// Allow to define macros with the command line syntax (-DMACRO(x)=definition)
|
sl@0
|
136 |
//
|
sl@0
|
137 |
// To disable the the possibility to define macros based on the command line
|
sl@0
|
138 |
// syntax, define the following constant as zero before including this file.
|
sl@0
|
139 |
//
|
sl@0
|
140 |
#if !defined(BOOST_WAVE_ENABLE_COMMANDLINE_MACROS)
|
sl@0
|
141 |
#define BOOST_WAVE_ENABLE_COMMANDLINE_MACROS 1
|
sl@0
|
142 |
#endif
|
sl@0
|
143 |
|
sl@0
|
144 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
145 |
// Define the pragma keyword to be used by the library to recognize its own
|
sl@0
|
146 |
// pragma's. If nothing else is defined, then 'wave' will be used as the
|
sl@0
|
147 |
// default keyword, i.e. the library recognizes all
|
sl@0
|
148 |
//
|
sl@0
|
149 |
// #pragma wave option [(argument)]
|
sl@0
|
150 |
//
|
sl@0
|
151 |
// and dispatches the handling to the interpret_pragma() preprocessing hook
|
sl@0
|
152 |
// function (see file: preprocessing_hooks.hpp). The arguments part of the
|
sl@0
|
153 |
// pragma is optional.
|
sl@0
|
154 |
// The BOOST_WAVE_PRAGMA_KEYWORD constant needs to be defined to
|
sl@0
|
155 |
// resolve as a string literal value.
|
sl@0
|
156 |
#if !defined(BOOST_WAVE_PRAGMA_KEYWORD)
|
sl@0
|
157 |
#define BOOST_WAVE_PRAGMA_KEYWORD "wave"
|
sl@0
|
158 |
#endif
|
sl@0
|
159 |
|
sl@0
|
160 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
161 |
// Define the string type to be used to store the token values and the file
|
sl@0
|
162 |
// names inside a file_position template class
|
sl@0
|
163 |
//
|
sl@0
|
164 |
#if !defined(BOOST_WAVE_STRINGTYPE)
|
sl@0
|
165 |
|
sl@0
|
166 |
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || \
|
sl@0
|
167 |
BOOST_WORKAROUND(__MWERKS__, < 0x3200) || \
|
sl@0
|
168 |
(defined(__DECCXX) && defined(__alpha)) || \
|
sl@0
|
169 |
defined(BOOST_WAVE_STRINGTYPE_USE_STDSTRING)
|
sl@0
|
170 |
|
sl@0
|
171 |
// VC7 isn't able to compile the flex_string class, fall back to std::string
|
sl@0
|
172 |
// CW up to 8.3 chokes as well *sigh*
|
sl@0
|
173 |
// Tru64/CXX has linker problems when using flex_string
|
sl@0
|
174 |
#define BOOST_WAVE_STRINGTYPE std::string
|
sl@0
|
175 |
#if !defined(BOOST_WAVE_STRINGTYPE_USE_STDSTRING)
|
sl@0
|
176 |
#define BOOST_WAVE_STRINGTYPE_USE_STDSTRING 1
|
sl@0
|
177 |
#endif
|
sl@0
|
178 |
|
sl@0
|
179 |
#else
|
sl@0
|
180 |
// use the following, if you have a fast std::allocator<char>
|
sl@0
|
181 |
#define BOOST_WAVE_STRINGTYPE boost::wave::util::flex_string< \
|
sl@0
|
182 |
char, std::char_traits<char>, std::allocator<char>, \
|
sl@0
|
183 |
boost::wave::util::CowString</*char, */\
|
sl@0
|
184 |
boost::wave::util::AllocatorStringStorage<char> \
|
sl@0
|
185 |
> \
|
sl@0
|
186 |
> \
|
sl@0
|
187 |
/**/
|
sl@0
|
188 |
|
sl@0
|
189 |
/* #define BOOST_WAVE_STRINGTYPE boost::wave::util::flex_string< \
|
sl@0
|
190 |
char, std::char_traits<char>, boost::fast_pool_allocator<char>, \
|
sl@0
|
191 |
boost::wave::util::CowString<char, \
|
sl@0
|
192 |
boost::wave::util::AllocatorStringStorage<char, \
|
sl@0
|
193 |
boost::fast_pool_allocator<char> \
|
sl@0
|
194 |
> \
|
sl@0
|
195 |
> \
|
sl@0
|
196 |
> \
|
sl@0
|
197 |
*/ /**/
|
sl@0
|
198 |
|
sl@0
|
199 |
// This include is needed for the flex_string class used in the
|
sl@0
|
200 |
// BOOST_WAVE_STRINGTYPE above.
|
sl@0
|
201 |
#include <boost/wave/util/flex_string.hpp>
|
sl@0
|
202 |
|
sl@0
|
203 |
// This include is needed for the boost::fast_allocator class used in the
|
sl@0
|
204 |
// BOOST_WAVE_STRINGTYPE above.
|
sl@0
|
205 |
// Configure Boost.Pool thread support (for now: no thread support at all)
|
sl@0
|
206 |
//#define BOOST_NO_MT
|
sl@0
|
207 |
//#include <boost/pool/pool_alloc.hpp>
|
sl@0
|
208 |
|
sl@0
|
209 |
// Use the following, if you want to incorporate Maxim Yegorushkin's
|
sl@0
|
210 |
// const_string library (http://sourceforge.net/projects/conststring/), which
|
sl@0
|
211 |
// may be even faster, than using the flex_string class from above
|
sl@0
|
212 |
//#define BOOST_WAVE_STRINGTYPE boost::const_string<char>
|
sl@0
|
213 |
//
|
sl@0
|
214 |
//#include <boost/const_string/const_string.hpp>
|
sl@0
|
215 |
//#include <boost/const_string/io.hpp>
|
sl@0
|
216 |
//#include <boost/const_string/concatenation.hpp>
|
sl@0
|
217 |
|
sl@0
|
218 |
#endif // BOOST_WORKAROUND(_MSC_VER, <= 1300)
|
sl@0
|
219 |
#endif
|
sl@0
|
220 |
|
sl@0
|
221 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
222 |
// The following definition forces the Spirit tree code to use list's instead
|
sl@0
|
223 |
// of vectors, which may be more efficient on some platforms
|
sl@0
|
224 |
// #define BOOST_SPIRIT_USE_LIST_FOR_TREES
|
sl@0
|
225 |
|
sl@0
|
226 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
227 |
// The following definition forces the Spirit tree code to use boost pool
|
sl@0
|
228 |
// allocators in stead of the std::allocator for the vector/list's.
|
sl@0
|
229 |
// #define BOOST_SPIRIT_USE_BOOST_ALLOCATOR_FOR_TREES
|
sl@0
|
230 |
|
sl@0
|
231 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
232 |
// Uncomment the following, if you need debug output, the
|
sl@0
|
233 |
// BOOST_SPIRIT_DEBUG_FLAGS_CPP constants below help to fine control the
|
sl@0
|
234 |
// amount of the generated debug output.
|
sl@0
|
235 |
//#define BOOST_SPIRIT_DEBUG
|
sl@0
|
236 |
|
sl@0
|
237 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
238 |
// Debug flags for the Wave library, possible flags specified below.
|
sl@0
|
239 |
//
|
sl@0
|
240 |
// Note: These flags take effect only if the BOOST_SPIRIT_DEBUG constant
|
sl@0
|
241 |
// above is defined as well.
|
sl@0
|
242 |
#define BOOST_SPIRIT_DEBUG_FLAGS_CPP_GRAMMAR 0x0001
|
sl@0
|
243 |
#define BOOST_SPIRIT_DEBUG_FLAGS_TIME_CONVERSION 0x0002
|
sl@0
|
244 |
#define BOOST_SPIRIT_DEBUG_FLAGS_CPP_EXPR_GRAMMAR 0x0004
|
sl@0
|
245 |
#define BOOST_SPIRIT_DEBUG_FLAGS_INTLIT_GRAMMAR 0x0008
|
sl@0
|
246 |
#define BOOST_SPIRIT_DEBUG_FLAGS_CHLIT_GRAMMAR 0x0010
|
sl@0
|
247 |
#define BOOST_SPIRIT_DEBUG_FLAGS_DEFINED_GRAMMAR 0x0020
|
sl@0
|
248 |
#define BOOST_SPIRIT_DEBUG_FLAGS_PREDEF_MACROS_GRAMMAR 0x0040
|
sl@0
|
249 |
|
sl@0
|
250 |
#if !defined(BOOST_SPIRIT_DEBUG_FLAGS_CPP)
|
sl@0
|
251 |
#define BOOST_SPIRIT_DEBUG_FLAGS_CPP 0 // default is no debugging
|
sl@0
|
252 |
#endif
|
sl@0
|
253 |
|
sl@0
|
254 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
255 |
//
|
sl@0
|
256 |
// For all recognized preprocessor statements the output parse trees
|
sl@0
|
257 |
// formatted as xml are printed. The formatted parse trees are streamed to the
|
sl@0
|
258 |
// std::ostream defined by the WAVE_DUMP_PARSE_TREE_OUT constant.
|
sl@0
|
259 |
//
|
sl@0
|
260 |
// To enable the output of these parse trees, define the following constant
|
sl@0
|
261 |
// as zero something not equal to zero before including this file.
|
sl@0
|
262 |
//
|
sl@0
|
263 |
#if !defined(BOOST_WAVE_DUMP_PARSE_TREE)
|
sl@0
|
264 |
#define BOOST_WAVE_DUMP_PARSE_TREE 0
|
sl@0
|
265 |
#endif
|
sl@0
|
266 |
#if BOOST_WAVE_DUMP_PARSE_TREE != 0 && !defined(BOOST_WAVE_DUMP_PARSE_TREE_OUT)
|
sl@0
|
267 |
#define BOOST_WAVE_DUMP_PARSE_TREE_OUT std::cerr
|
sl@0
|
268 |
#endif
|
sl@0
|
269 |
|
sl@0
|
270 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
271 |
//
|
sl@0
|
272 |
// For all #if and #elif directives the preprocessed expressions are printed.
|
sl@0
|
273 |
// These expressions are streamed to the std::ostream defined by the
|
sl@0
|
274 |
// BOOST_WAVE_DUMP_CONDITIONAL_EXPRESSIONS_OUT constant.
|
sl@0
|
275 |
//
|
sl@0
|
276 |
// To enable the output of the preprocessed expressions, define the following
|
sl@0
|
277 |
// constant as something not equal to zero before including this file.
|
sl@0
|
278 |
//
|
sl@0
|
279 |
#if !defined(BOOST_WAVE_DUMP_CONDITIONAL_EXPRESSIONS)
|
sl@0
|
280 |
#define BOOST_WAVE_DUMP_CONDITIONAL_EXPRESSIONS 0
|
sl@0
|
281 |
#endif
|
sl@0
|
282 |
#if BOOST_WAVE_DUMP_CONDITIONAL_EXPRESSIONS != 0 && \
|
sl@0
|
283 |
!defined(BOOST_WAVE_DUMP_CONDITIONAL_EXPRESSIONS_OUT)
|
sl@0
|
284 |
#define BOOST_WAVE_DUMP_CONDITIONAL_EXPRESSIONS_OUT std::cerr
|
sl@0
|
285 |
#endif
|
sl@0
|
286 |
|
sl@0
|
287 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
288 |
// Decide, whether to use the separate compilation model for the instantiation
|
sl@0
|
289 |
// of the C++ lexer objects.
|
sl@0
|
290 |
//
|
sl@0
|
291 |
// If this is defined, you should explicitly instantiate the C++ lexer
|
sl@0
|
292 |
// template with the correct parameters in a separate compilation unit of
|
sl@0
|
293 |
// your program (see the file instantiate_re2c_lexer.cpp).
|
sl@0
|
294 |
//
|
sl@0
|
295 |
// To use the lexer inclusion model, define the following constant as
|
sl@0
|
296 |
// something not equal to zero before including this file.
|
sl@0
|
297 |
//
|
sl@0
|
298 |
#if !defined(BOOST_WAVE_SEPARATE_LEXER_INSTANTIATION)
|
sl@0
|
299 |
#define BOOST_WAVE_SEPARATE_LEXER_INSTANTIATION 1
|
sl@0
|
300 |
#endif
|
sl@0
|
301 |
|
sl@0
|
302 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
303 |
// Decide, whether to use the separate compilation model for the instantiation
|
sl@0
|
304 |
// of the grammar objects.
|
sl@0
|
305 |
//
|
sl@0
|
306 |
// If this is defined, you should explicitly instantiate the grammar
|
sl@0
|
307 |
// templates with the correct parameters in a separate compilation unit of
|
sl@0
|
308 |
// your program (see the files instantiate_cpp_grammar.cpp et.al.).
|
sl@0
|
309 |
//
|
sl@0
|
310 |
// To use the grammar inclusion model, define the following constant as
|
sl@0
|
311 |
// something not equal to zero before including this file.
|
sl@0
|
312 |
//
|
sl@0
|
313 |
#if !defined(BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION)
|
sl@0
|
314 |
#define BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION 1
|
sl@0
|
315 |
#endif
|
sl@0
|
316 |
|
sl@0
|
317 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
318 |
// Decide whether to use a strict C++ lexer.
|
sl@0
|
319 |
//
|
sl@0
|
320 |
// If this is defined to something != 0, then the C++ lexers recognize the
|
sl@0
|
321 |
// strict C99/C++ basic source character set. If it is not defined or defined
|
sl@0
|
322 |
// to zero, the C++ lexers recognize the '$' character as part of identifiers.
|
sl@0
|
323 |
//
|
sl@0
|
324 |
// The default is to recognize the '$' character as part of identifiers.
|
sl@0
|
325 |
//
|
sl@0
|
326 |
#if !defined(BOOST_WAVE_USE_STRICT_LEXER)
|
sl@0
|
327 |
#define BOOST_WAVE_USE_STRICT_LEXER 0
|
sl@0
|
328 |
#endif
|
sl@0
|
329 |
|
sl@0
|
330 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
331 |
// Decide, whether the serialization of the wave::context class should be
|
sl@0
|
332 |
// supported
|
sl@0
|
333 |
//
|
sl@0
|
334 |
// If this is defined to something not equal to zero the generated code will
|
sl@0
|
335 |
// expose routines allowing to store and reload the internal state of the
|
sl@0
|
336 |
// wave::context object.
|
sl@0
|
337 |
//
|
sl@0
|
338 |
// To enable the availability of the serialization functionality, define the
|
sl@0
|
339 |
// following constant as something not equal to zero before including this file.
|
sl@0
|
340 |
//
|
sl@0
|
341 |
#if !defined(BOOST_WAVE_SERIALIZATION)
|
sl@0
|
342 |
#define BOOST_WAVE_SERIALIZATION 0
|
sl@0
|
343 |
#endif
|
sl@0
|
344 |
|
sl@0
|
345 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
346 |
// configure Boost.Pool thread support (for now: no thread support at all)
|
sl@0
|
347 |
#if !defined(BOOST_NO_MT)
|
sl@0
|
348 |
#define BOOST_NO_MT
|
sl@0
|
349 |
#endif // !defined(BOOST_NO_MT)
|
sl@0
|
350 |
|
sl@0
|
351 |
//#if !defined(BOOST_DISABLE_THREADS)
|
sl@0
|
352 |
//#define BOOST_DISABLE_THREADS
|
sl@0
|
353 |
//#endif // !defined(BOOST_DISABLE_THREADS)
|
sl@0
|
354 |
|
sl@0
|
355 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
356 |
// Wave needs at least 4 parameters for phoenix actors
|
sl@0
|
357 |
#if !defined(PHOENIX_LIMIT)
|
sl@0
|
358 |
#define PHOENIX_LIMIT 6
|
sl@0
|
359 |
#endif
|
sl@0
|
360 |
#if PHOENIX_LIMIT < 6
|
sl@0
|
361 |
#error "Boost.Wave: the constant PHOENIX_LIMIT must be at least defined to 4" \
|
sl@0
|
362 |
" to compile the library."
|
sl@0
|
363 |
#endif
|
sl@0
|
364 |
|
sl@0
|
365 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
366 |
// Set up dll import/export options
|
sl@0
|
367 |
#if defined(BOOST_HAS_DECLSPEC) && \
|
sl@0
|
368 |
(defined(BOOST_WAVE_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && \
|
sl@0
|
369 |
!defined(BOOST_WAVE_STATIC_LINK)
|
sl@0
|
370 |
|
sl@0
|
371 |
#if defined(BOOST_WAVE_SOURCE)
|
sl@0
|
372 |
#define BOOST_WAVE_DECL __declspec(dllexport)
|
sl@0
|
373 |
#define BOOST_WAVE_BUILD_DLL
|
sl@0
|
374 |
#else
|
sl@0
|
375 |
#define BOOST_WAVE_DECL __declspec(dllimport)
|
sl@0
|
376 |
#endif
|
sl@0
|
377 |
|
sl@0
|
378 |
#endif // building a shared library
|
sl@0
|
379 |
|
sl@0
|
380 |
#ifndef BOOST_WAVE_DECL
|
sl@0
|
381 |
#define BOOST_WAVE_DECL
|
sl@0
|
382 |
#endif
|
sl@0
|
383 |
|
sl@0
|
384 |
///////////////////////////////////////////////////////////////////////////////
|
sl@0
|
385 |
// Auto library naming
|
sl@0
|
386 |
#if BOOST_VERSION >= 103100
|
sl@0
|
387 |
// auto link features work beginning from Boost V1.31.0
|
sl@0
|
388 |
#if !defined(BOOST_WAVE_SOURCE) && !defined(BOOST_ALL_NO_LIB) && \
|
sl@0
|
389 |
!defined(BOOST_WAVE_NO_LIB)
|
sl@0
|
390 |
|
sl@0
|
391 |
#define BOOST_LIB_NAME boost_wave
|
sl@0
|
392 |
|
sl@0
|
393 |
// tell the auto-link code to select a dll when required:
|
sl@0
|
394 |
#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_WAVE_DYN_LINK)
|
sl@0
|
395 |
#define BOOST_DYN_LINK
|
sl@0
|
396 |
#endif
|
sl@0
|
397 |
|
sl@0
|
398 |
#include <boost/config/auto_link.hpp>
|
sl@0
|
399 |
|
sl@0
|
400 |
#endif // auto-linking disabled
|
sl@0
|
401 |
#endif // BOOST_VERSION
|
sl@0
|
402 |
|
sl@0
|
403 |
#endif // !defined(WAVE_CONFIG_HPP_F143F90A_A63F_4B27_AC41_9CA4F14F538D_INCLUDED)
|