Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/boost/filesystem/config.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 //  boost/filesystem/v3/config.hpp  ----------------------------------------------------//
0002 
0003 //  Copyright Beman Dawes 2003
0004 //  Copyright Andrey Semashev 2021-2023
0005 
0006 //  Distributed under the Boost Software License, Version 1.0.
0007 //  See http://www.boost.org/LICENSE_1_0.txt
0008 
0009 //  Library home page: http://www.boost.org/libs/filesystem
0010 
0011 //--------------------------------------------------------------------------------------//
0012 
0013 #ifndef BOOST_FILESYSTEM_CONFIG_HPP
0014 #define BOOST_FILESYSTEM_CONFIG_HPP
0015 
0016 // This header implements separate compilation features as described in
0017 // http://www.boost.org/more/separate_compilation.html
0018 
0019 #include <boost/config.hpp>
0020 #include <boost/system/api_config.hpp> // for BOOST_POSIX_API or BOOST_WINDOWS_API
0021 #include <boost/detail/workaround.hpp>
0022 
0023 #if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION != 3 && BOOST_FILESYSTEM_VERSION != 4
0024 #error Compiling Boost.Filesystem file with BOOST_FILESYSTEM_VERSION defined != 3 or 4
0025 #endif
0026 
0027 #if defined(BOOST_FILESYSTEM_SOURCE)
0028 #undef BOOST_FILESYSTEM_VERSION
0029 #define BOOST_FILESYSTEM_VERSION 4
0030 #elif !defined(BOOST_FILESYSTEM_VERSION)
0031 #define BOOST_FILESYSTEM_VERSION 3
0032 #endif
0033 
0034 #define BOOST_FILESYSTEM_VERSIONED_SYM(sym) BOOST_JOIN(sym, BOOST_JOIN(_v, BOOST_FILESYSTEM_VERSION))
0035 #define BOOST_FILESYSTEM_VERSION_NAMESPACE BOOST_JOIN(v, BOOST_FILESYSTEM_VERSION)
0036 
0037 #if BOOST_FILESYSTEM_VERSION == 4
0038 #undef BOOST_FILESYSTEM_DEPRECATED
0039 #if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
0040 #define BOOST_FILESYSTEM_NO_DEPRECATED
0041 #endif
0042 #endif
0043 
0044 #define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions
0045 
0046 //  BOOST_FILESYSTEM_DEPRECATED needed for source compiles -----------------------------//
0047 
0048 #ifdef BOOST_FILESYSTEM_SOURCE
0049 #define BOOST_FILESYSTEM_DEPRECATED
0050 #undef BOOST_FILESYSTEM_NO_DEPRECATED // fixes #9454, src bld fails if NO_DEP defined
0051 #endif
0052 
0053 #if defined(BOOST_FILESYSTEM_DEPRECATED) && defined(BOOST_FILESYSTEM_NO_DEPRECATED)
0054 #error Both BOOST_FILESYSTEM_DEPRECATED and BOOST_FILESYSTEM_NO_DEPRECATED are defined
0055 #endif
0056 
0057 //  throw an exception  ----------------------------------------------------------------//
0058 //
0059 //  Exceptions were originally thrown via boost::throw_exception().
0060 //  As throw_exception() became more complex, it caused user error reporting
0061 //  to be harder to interpret, since the exception reported became much more complex.
0062 //  The immediate fix was to throw directly, wrapped in a macro to make any later change
0063 //  easier.
0064 
0065 #define BOOST_FILESYSTEM_THROW(EX) throw EX
0066 
0067 #if defined(BOOST_NO_STD_WSTRING)
0068 #error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support
0069 #endif
0070 
0071 // Deprecated symbols markup -----------------------------------------------------------//
0072 
0073 #if !defined(BOOST_FILESYSTEM_ALLOW_DEPRECATED)
0074 #define BOOST_FILESYSTEM_DETAIL_DEPRECATED(msg) BOOST_DEPRECATED(msg)
0075 #else
0076 #define BOOST_FILESYSTEM_DETAIL_DEPRECATED(msg)
0077 #endif
0078 
0079 
0080 //  This header implements separate compilation features as described in
0081 //  http://www.boost.org/more/separate_compilation.html
0082 
0083 //  normalize macros  ------------------------------------------------------------------//
0084 
0085 #if !defined(BOOST_FILESYSTEM_DYN_LINK) && !defined(BOOST_FILESYSTEM_STATIC_LINK) && !defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_ALL_STATIC_LINK)
0086 #define BOOST_FILESYSTEM_STATIC_LINK
0087 #endif
0088 
0089 #if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_FILESYSTEM_DYN_LINK)
0090 #define BOOST_FILESYSTEM_DYN_LINK
0091 #elif defined(BOOST_ALL_STATIC_LINK) && !defined(BOOST_FILESYSTEM_STATIC_LINK)
0092 #define BOOST_FILESYSTEM_STATIC_LINK
0093 #endif
0094 
0095 #if defined(BOOST_FILESYSTEM_DYN_LINK) && defined(BOOST_FILESYSTEM_STATIC_LINK)
0096 #error Must not define both BOOST_FILESYSTEM_DYN_LINK and BOOST_FILESYSTEM_STATIC_LINK
0097 #endif
0098 
0099 #if defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB)
0100 #define BOOST_FILESYSTEM_NO_LIB
0101 #endif
0102 
0103 //  enable dynamic linking  ------------------------------------------------------------//
0104 
0105 #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK)
0106 #if defined(BOOST_FILESYSTEM_SOURCE)
0107 #define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_EXPORT
0108 #else
0109 #define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_IMPORT
0110 #endif
0111 #else
0112 #define BOOST_FILESYSTEM_DECL
0113 #endif
0114 
0115 //  enable automatic library variant selection  ----------------------------------------//
0116 
0117 #if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB)
0118 //
0119 // Set the name of our library, this will get undef'ed by auto_link.hpp
0120 // once it's done with it:
0121 //
0122 #define BOOST_LIB_NAME boost_filesystem
0123 //
0124 // If we're importing code from a dll, then tell auto_link.hpp about it:
0125 //
0126 #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK)
0127 #define BOOST_DYN_LINK
0128 #endif
0129 //
0130 // And include the header that does the work:
0131 //
0132 #include <boost/config/auto_link.hpp>
0133 #endif // auto-linking disabled
0134 
0135 #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) ||\
0136     (defined(BOOST_LIBSTDCXX_VERSION) && (BOOST_LIBSTDCXX_VERSION < 50000)) ||\
0137     (defined(BOOST_MSSTL_VERSION) && (BOOST_MSSTL_VERSION < 100))
0138 // Indicates that the standard library fstream types do not support move constructor/assignment.
0139 #define BOOST_FILESYSTEM_DETAIL_NO_CXX11_MOVABLE_FSTREAMS
0140 #endif
0141 
0142 #if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW) && \
0143     (\
0144         (defined(BOOST_DINKUMWARE_STDLIB) && defined(_HAS_CXX23) && (_HAS_CXX23 != 0) && defined(_MSVC_STL_UPDATE) && (_MSVC_STL_UPDATE < 202208L)) || \
0145         (defined(BOOST_LIBSTDCXX_VERSION) && (BOOST_LIBSTDCXX_VERSION < 110400 || (BOOST_LIBSTDCXX_VERSION >= 120000 && BOOST_LIBSTDCXX_VERSION < 120200)) && (BOOST_CXX_VERSION > 202002L))\
0146     )
0147 // Indicates that std::string_view has implicit constructor from ranges that was present in an early C++23 draft (N4892).
0148 // This was later rectified by marking the constructor explicit (https://wg21.link/p2499). Unfortunately, some compilers
0149 // were released with the constructor being implicit.
0150 #define BOOST_FILESYSTEM_DETAIL_CXX23_STRING_VIEW_HAS_IMPLICIT_RANGE_CTOR
0151 #endif
0152 
0153 #endif // BOOST_FILESYSTEM_CONFIG_HPP