LCOV - code coverage report
Current view: top level - usr/include/boost/wave/util - filesystem_compatibility.hpp (source / functions) Hit Total Coverage
Test: ROSE Lines: 0 14 0.0 %
Date: 2022-12-08 13:48:47 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*=============================================================================
       2             :     Boost.Wave: A Standard compliant C++ preprocessor library
       3             : 
       4             :     http://www.boost.org/
       5             : 
       6             :     Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
       7             :     Software License, Version 1.0. (See accompanying file
       8             :     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       9             : =============================================================================*/
      10             : 
      11             : #if !defined(BOOST_WAVE_FILESYSTEM_COMPATIBILITY_MAR_09_2009_0142PM)
      12             : #define BOOST_WAVE_FILESYSTEM_COMPATIBILITY_MAR_09_2009_0142PM
      13             : 
      14             : #include <string>
      15             : 
      16             : #include <boost/version.hpp>
      17             : #include <boost/filesystem/path.hpp>
      18             : #include <boost/filesystem/operations.hpp>
      19             : 
      20             : namespace boost { namespace wave { namespace util
      21             : {
      22             : ///////////////////////////////////////////////////////////////////////////////
      23             : // filesystem wrappers allowing to handle different Boost versions
      24             : #if !defined(BOOST_FILESYSTEM_NO_DEPRECATED)
      25             : // interface wrappers for older Boost versions
      26           0 :     inline boost::filesystem::path initial_path()
      27             :     {
      28           0 :         return boost::filesystem::initial_path();
      29             :     }
      30             : 
      31             :     inline boost::filesystem::path current_path()
      32             :     {
      33             :         return boost::filesystem::current_path();
      34             :     }
      35             : 
      36             :     template <typename String>
      37           0 :     inline boost::filesystem::path create_path(String const& p)
      38             :     {
      39             : #if BOOST_FILESYSTEM_VERSION >= 3
      40           0 :         return boost::filesystem::path(p);
      41             : #else
      42             :         return boost::filesystem::path(p, boost::filesystem::native);
      43             : #endif
      44             :     }
      45             : 
      46             :     inline std::string leaf(boost::filesystem::path const& p)
      47             :     {
      48             : #if BOOST_FILESYSTEM_VERSION >= 3
      49             :         return p.leaf().string();
      50             : #else
      51             :         return p.leaf();
      52             : #endif
      53             :     }
      54             : 
      55           0 :     inline boost::filesystem::path branch_path(boost::filesystem::path const& p)
      56             :     {
      57           0 :         return p.branch_path();
      58             :     }
      59             : 
      60           0 :     inline boost::filesystem::path normalize(boost::filesystem::path& p)
      61             :     {
      62           0 :         return p.normalize().make_preferred();
      63             :     }
      64             : 
      65           0 :     inline std::string native_file_string(boost::filesystem::path const& p)
      66             :     {
      67             : #if BOOST_FILESYSTEM_VERSION >= 3
      68           0 :         return p.string();
      69             : #else
      70             :         return p.native_file_string();
      71             : #endif
      72             :     }
      73             : 
      74           0 :     inline boost::filesystem::path complete_path(
      75             :         boost::filesystem::path const& p)
      76             :     {
      77             : #if BOOST_FILESYSTEM_VERSION >= 3
      78             : #if BOOST_VERSION >= 105000
      79           0 :         return boost::filesystem::complete(p, initial_path());
      80             : #else
      81             :         return boost::filesystem3::complete(p, initial_path());
      82             : #endif
      83             : #else
      84             :         return boost::filesystem::complete(p, initial_path());
      85             : #endif
      86             :     }
      87             : 
      88           0 :     inline boost::filesystem::path complete_path(
      89             :         boost::filesystem::path const& p, boost::filesystem::path const& base)
      90             :     {
      91             : #if BOOST_FILESYSTEM_VERSION >= 3
      92             : #if BOOST_VERSION >= 105000
      93           0 :         return boost::filesystem::complete(p, base);
      94             : #else
      95             :         return boost::filesystem3::complete(p, base);
      96             : #endif
      97             : #else
      98             :         return boost::filesystem::complete(p, base);
      99             : #endif
     100             :     }
     101             : 
     102             : #else
     103             : 
     104             : // interface wrappers if deprecated functions do not exist
     105             :     inline boost::filesystem::path initial_path()
     106             :     {
     107             : #if BOOST_FILESYSTEM_VERSION >= 3
     108             : #if BOOST_VERSION >= 105000
     109             :         return boost::filesystem::detail::initial_path();
     110             : #else
     111             :         return boost::filesystem3::detail::initial_path();
     112             : #endif
     113             : #else
     114             :         return boost::filesystem::initial_path<boost::filesystem::path>();
     115             : #endif
     116             :     }
     117             : 
     118             :     inline boost::filesystem::path current_path()
     119             :     {
     120             : #if BOOST_FILESYSTEM_VERSION >= 3
     121             : #if BOOST_VERSION >= 105000
     122             :         return boost::filesystem::current_path();
     123             : #else
     124             :         return boost::filesystem3::current_path();
     125             : #endif
     126             : #else
     127             :         return boost::filesystem::current_path<boost::filesystem::path>();
     128             : #endif
     129             :     }
     130             : 
     131             :     template <typename String>
     132             :     inline boost::filesystem::path create_path(String const& p)
     133             :     {
     134             :         return boost::filesystem::path(p);
     135             :     }
     136             : 
     137             :     inline std::string leaf(boost::filesystem::path const& p)
     138             :     {
     139             : #if BOOST_VERSION >= 104600 && BOOST_FILESYSTEM_VERSION >= 3
     140             :         return p.filename().string();
     141             : #else
     142             :         return p.filename();
     143             : #endif
     144             :     }
     145             : 
     146             :     inline boost::filesystem::path branch_path(boost::filesystem::path const& p)
     147             :     {
     148             :         return p.parent_path();
     149             :     }
     150             : 
     151             :     inline boost::filesystem::path normalize(boost::filesystem::path& p)
     152             :     {
     153             :         return p; // function doesn't exist anymore
     154             :     }
     155             : 
     156             :     inline std::string native_file_string(boost::filesystem::path const& p)
     157             :     {
     158             : #if BOOST_VERSION >= 104600
     159             :         return p.string();
     160             : #else
     161             :         return p.file_string();
     162             : #endif
     163             :     }
     164             : 
     165             :     inline boost::filesystem::path complete_path(
     166             :         boost::filesystem::path const& p)
     167             :     {
     168             : #if BOOST_VERSION >= 104600 && BOOST_FILESYSTEM_VERSION >= 3
     169             :         return boost::filesystem::absolute(p, initial_path());
     170             : #else
     171             :         return boost::filesystem::complete(p, initial_path());
     172             : #endif
     173             :     }
     174             : 
     175             :     inline boost::filesystem::path complete_path(
     176             :         boost::filesystem::path const& p, boost::filesystem::path const& base)
     177             :     {
     178             : #if BOOST_VERSION >= 104600 && BOOST_FILESYSTEM_VERSION >= 3
     179             :         return boost::filesystem::absolute(p, base);
     180             : #else
     181             :         return boost::filesystem::complete(p, base);
     182             : #endif
     183             :     }
     184             : #endif
     185             : 
     186             :     // starting withBoost V1.50 create_directories throws if given an empty path
     187             :     inline bool create_directories(boost::filesystem::path const& p)
     188             :     {
     189             :         if (p.string().empty())
     190             :             return true;
     191             :         return boost::filesystem::create_directories(p);
     192             :     }
     193             : }}}
     194             : 
     195             : #endif

Generated by: LCOV version 1.14