65 lines
1.9 KiB
C++
65 lines
1.9 KiB
C++
//
|
|
// Copyright 2022 Mateusz Loskot <mateusz at loskot dot net>
|
|
//
|
|
// 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
|
|
//
|
|
#ifndef BOOST_GIL_IO_DETAIL_FILESYSTEM_HPP
|
|
#define BOOST_GIL_IO_DETAIL_FILESYSTEM_HPP
|
|
|
|
#include <boost/config.hpp>
|
|
|
|
#if !defined(BOOST_GIL_IO_USE_BOOST_FILESYSTEM) && !defined(BOOST_NO_CXX17_HDR_FILESYSTEM)
|
|
#if defined(__cpp_lib_filesystem)
|
|
#include <filesystem>
|
|
#define BOOST_GIL_IO_USE_STD_FILESYSTEM
|
|
#elif defined(__cpp_lib_experimental_filesystem)
|
|
#include <experimental/filesystem>
|
|
#define BOOST_GIL_IO_USE_STD_FILESYSTEM
|
|
#define BOOST_GIL_IO_USE_STD_EXPERIMENTAL_FILESYSTEM
|
|
#endif
|
|
#endif // !BOOST_GIL_IO_USE_BOOST_FILESYSTEM && !BOOST_NO_CXX17_HDR_FILESYSTEM
|
|
|
|
#if !defined(BOOST_GIL_IO_USE_STD_FILESYSTEM)
|
|
// Disable warning: conversion to 'std::atomic<int>::__integral_type {aka int}' from 'long int' may alter its value
|
|
#if defined(BOOST_CLANG)
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wshorten-64-to-32"
|
|
#endif
|
|
|
|
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wconversion"
|
|
#endif
|
|
|
|
#define BOOST_FILESYSTEM_VERSION 3
|
|
#include <boost/filesystem.hpp>
|
|
#define BOOST_GIL_IO_USE_BOOST_FILESYSTEM
|
|
|
|
#if defined(BOOST_CLANG)
|
|
#pragma clang diagnostic pop
|
|
#endif
|
|
|
|
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
|
|
#pragma GCC diagnostic pop
|
|
#endif
|
|
|
|
#endif
|
|
|
|
namespace boost { namespace gil { namespace detail {
|
|
|
|
#if defined(BOOST_GIL_IO_USE_STD_EXPERIMENTAL_FILESYSTEM)
|
|
namespace filesystem = std::experimental::filesystem;
|
|
#elif defined(BOOST_GIL_IO_USE_STD_FILESYSTEM)
|
|
namespace filesystem = std::filesystem;
|
|
#else
|
|
#if !defined(BOOST_GIL_IO_USE_BOOST_FILESYSTEM)
|
|
#error "Boost.Filesystem is required if C++17 <filesystem> is not available"
|
|
#endif
|
|
namespace filesystem = boost::filesystem;
|
|
#endif
|
|
|
|
}}} // namespace boost::gil::detail
|
|
|
|
#endif |