Chris@16: /*============================================================================= Chris@16: Boost.Wave: A Standard compliant C++ preprocessor library Chris@16: Persistent application configuration Chris@16: Chris@16: http://www.boost.org/ Chris@16: Chris@16: Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost Chris@16: Software License, Version 1.0. (See accompanying file Chris@16: LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: =============================================================================*/ Chris@16: Chris@16: #if !defined(BOOST_WAVE_CONFIG_CONSTANT_HPP) Chris@16: #define BOOST_WAVE_CONFIG_CONSTANT_HPP Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #if BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS != 0 Chris@16: #define BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS_CONFIG 0x00000001 Chris@16: #else Chris@16: #define BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS_CONFIG 0x00000000 Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #if BOOST_WAVE_SUPPORT_PRAGMA_ONCE != 0 Chris@16: #define BOOST_WAVE_SUPPORT_PRAGMA_ONCE_CONFIG 0x00000002 Chris@16: #else Chris@16: #define BOOST_WAVE_SUPPORT_PRAGMA_ONCE_CONFIG 0x00000000 Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #if BOOST_WAVE_SUPPORT_MS_EXTENSIONS != 0 Chris@16: #define BOOST_WAVE_SUPPORT_MS_EXTENSIONS_CONFIG 0x00000004 Chris@16: #else Chris@16: #define BOOST_WAVE_SUPPORT_MS_EXTENSIONS_CONFIG 0x00000000 Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #if BOOST_WAVE_PREPROCESS_PRAGMA_BODY != 0 Chris@16: #define BOOST_WAVE_PREPROCESS_PRAGMA_BODY_CONFIG 0x00000008 Chris@16: #else Chris@16: #define BOOST_WAVE_PREPROCESS_PRAGMA_BODY_CONFIG 0x00000000 Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #if BOOST_WAVE_USE_STRICT_LEXER != 0 Chris@16: #define BOOST_WAVE_USE_STRICT_LEXER_CONFIG 0x00000010 Chris@16: #else Chris@16: #define BOOST_WAVE_USE_STRICT_LEXER_CONFIG 0x00000000 Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #if BOOST_WAVE_SUPPORT_IMPORT_KEYWORD != 0 Chris@16: #define BOOST_WAVE_SUPPORT_IMPORT_KEYWORD_CONFIG 0x00000020 Chris@16: #else Chris@16: #define BOOST_WAVE_SUPPORT_IMPORT_KEYWORD_CONFIG 0x00000000 Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: #define BOOST_WAVE_CONFIG ( \ Chris@16: BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS_CONFIG | \ Chris@16: BOOST_WAVE_SUPPORT_PRAGMA_ONCE_CONFIG | \ Chris@16: BOOST_WAVE_SUPPORT_MS_EXTENSIONS_CONFIG | \ Chris@16: BOOST_WAVE_PREPROCESS_PRAGMA_BODY_CONFIG | \ Chris@16: BOOST_WAVE_USE_STRICT_LEXER_CONFIG | \ Chris@16: BOOST_WAVE_SUPPORT_IMPORT_KEYWORD_CONFIG \ Chris@16: ) \ Chris@16: /**/ Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: namespace boost { namespace wave { Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////// Chris@16: // Call this function to test the configuration of the calling application Chris@16: // against the configuration of the linked library. Chris@16: BOOST_WAVE_DECL bool test_configuration(unsigned int config, Chris@16: char const* pragma_keyword, char const* string_type); Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: }} // namespace boost::wave Chris@16: Chris@16: #define BOOST_WAVE_TEST_CONFIGURATION() \ Chris@16: boost::wave::test_configuration( \ Chris@16: BOOST_WAVE_CONFIG, \ Chris@16: BOOST_WAVE_PRAGMA_KEYWORD, \ Chris@16: BOOST_PP_STRINGIZE((BOOST_WAVE_STRINGTYPE)) \ Chris@16: ) \ Chris@16: /**/ Chris@16: Chris@16: #endif // !BOOST_WAVE_CONFIG_CONSTANT_HPP