blob: 7a7d445e3ffb7e9648cfa68006aac241877d9839 [file] [log] [blame]
/*=============================================================================
Boost.Wave: A Standard compliant C++ preprocessor library
http://www.boost.org/
Copyright (c) 2001-2010 Hartmut Kaiser. Distributed under the Boost
Software License, Version 1.0. (See accompanying file
LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#if !defined(BOOST_WAVE_FILESYSTEM_COMPATIBILITY_MAR_09_2009_0142PM)
#define BOOST_WAVE_FILESYSTEM_COMPATIBILITY_MAR_09_2009_0142PM
#include <string>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
namespace boost { namespace wave { namespace util
{
///////////////////////////////////////////////////////////////////////////////
// filesystem wrappers allowing to handle different Boost versions
#if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
// interface wrappers for older Boost versions
inline boost::filesystem::path initial_path()
{
return boost::filesystem::initial_path();
}
inline boost::filesystem::path current_path()
{
return boost::filesystem::current_path();
}
template <typename String>
inline boost::filesystem::path create_path(String const& p)
{
return boost::filesystem::path(p, boost::filesystem::native);
}
inline std::string leaf(boost::filesystem::path const& p)
{
return p.leaf();
}
inline boost::filesystem::path branch_path(boost::filesystem::path const& p)
{
return p.branch_path();
}
inline boost::filesystem::path normalize(boost::filesystem::path& p)
{
return p.normalize();
}
inline std::string native_file_string(boost::filesystem::path const& p)
{
return p.native_file_string();
}
#else
// interface wrappers if deprecated functions do not exist
inline boost::filesystem::path initial_path()
{
return boost::filesystem::initial_path<boost::filesystem::path>();
}
inline boost::filesystem::path current_path()
{
return boost::filesystem::current_path<boost::filesystem::path>();
}
template <typename String>
inline boost::filesystem::path create_path(String const& p)
{
return boost::filesystem::path(p);
}
inline std::string leaf(boost::filesystem::path const& p)
{
return p.filename();
}
inline boost::filesystem::path branch_path(boost::filesystem::path const& p)
{
return p.parent_path();
}
inline boost::filesystem::path normalize(boost::filesystem::path& p)
{
return p; // function doesn't exist anymore
}
inline std::string native_file_string(boost::filesystem::path const& p)
{
return p.file_string();
}
#endif
}}}
#endif