1 // boost/filesystem/v3/config.hpp ----------------------------------------------------// 2 3 // Copyright Beman Dawes 2003 4 5 // Distributed under the Boost Software License, Version 1.0. 6 // See http://www.boost.org/LICENSE_1_0.txt 7 8 // Library home page: http://www.boost.org/libs/filesystem 9 10 //--------------------------------------------------------------------------------------// 11 12 #ifndef BOOST_FILESYSTEM3_CONFIG_HPP 13 #define BOOST_FILESYSTEM3_CONFIG_HPP 14 15 # if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION != 3 16 # error Compiling Filesystem version 3 file with BOOST_FILESYSTEM_VERSION defined != 3 17 # endif 18 19 # if !defined(BOOST_FILESYSTEM_VERSION) 20 # define BOOST_FILESYSTEM_VERSION 3 21 # endif 22 23 #define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions 24 25 // This header implements separate compilation features as described in 26 // http://www.boost.org/more/separate_compilation.html 27 28 #include <boost/config.hpp> 29 #include <boost/system/api_config.hpp> // for BOOST_POSIX_API or BOOST_WINDOWS_API 30 #include <boost/detail/workaround.hpp> 31 32 // BOOST_FILESYSTEM_DEPRECATED needed for source compiles -----------------------------// 33 34 # ifdef BOOST_FILESYSTEM_SOURCE 35 # define BOOST_FILESYSTEM_DEPRECATED 36 # undef BOOST_FILESYSTEM_NO_DEPRECATED // fixes #9454, src bld fails if NO_DEP defined 37 # endif 38 39 // throw an exception ----------------------------------------------------------------// 40 // 41 // Exceptions were originally thrown via boost::throw_exception(). 42 // As throw_exception() became more complex, it caused user error reporting 43 // to be harder to interpret, since the exception reported became much more complex. 44 // The immediate fix was to throw directly, wrapped in a macro to make any later change 45 // easier. 46 47 #define BOOST_FILESYSTEM_THROW(EX) throw EX 48 49 # if defined( BOOST_NO_STD_WSTRING ) 50 # error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support 51 # endif 52 53 // This header implements separate compilation features as described in 54 // http://www.boost.org/more/separate_compilation.html 55 56 // normalize macros ------------------------------------------------------------------// 57 58 #if !defined(BOOST_FILESYSTEM_DYN_LINK) && !defined(BOOST_FILESYSTEM_STATIC_LINK) \ 59 && !defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_ALL_STATIC_LINK) 60 # define BOOST_FILESYSTEM_STATIC_LINK 61 #endif 62 63 #if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_FILESYSTEM_DYN_LINK) 64 # define BOOST_FILESYSTEM_DYN_LINK 65 #elif defined(BOOST_ALL_STATIC_LINK) && !defined(BOOST_FILESYSTEM_STATIC_LINK) 66 # define BOOST_FILESYSTEM_STATIC_LINK 67 #endif 68 69 #if defined(BOOST_FILESYSTEM_DYN_LINK) && defined(BOOST_FILESYSTEM_STATIC_LINK) 70 # error Must not define both BOOST_FILESYSTEM_DYN_LINK and BOOST_FILESYSTEM_STATIC_LINK 71 #endif 72 73 #if defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB) 74 # define BOOST_FILESYSTEM_NO_LIB 75 #endif 76 77 // enable dynamic linking ------------------------------------------------------------// 78 79 #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) 80 # if defined(BOOST_FILESYSTEM_SOURCE) 81 # define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_EXPORT 82 # else 83 # define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_IMPORT 84 # endif 85 #else 86 # define BOOST_FILESYSTEM_DECL 87 #endif 88 89 // enable automatic library variant selection ----------------------------------------// 90 91 #if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) \ 92 && !defined(BOOST_FILESYSTEM_NO_LIB) 93 // 94 // Set the name of our library, this will get undef'ed by auto_link.hpp 95 // once it's done with it: 96 // 97 #define BOOST_LIB_NAME boost_filesystem 98 // 99 // If we're importing code from a dll, then tell auto_link.hpp about it: 100 // 101 #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) 102 # define BOOST_DYN_LINK 103 #endif 104 // 105 // And include the header that does the work: 106 // 107 #include <boost/config/auto_link.hpp> 108 #endif // auto-linking disabled 109 110 #endif // BOOST_FILESYSTEM3_CONFIG_HPP 111