finish centralizing boost::filesystem usage to single cpp file - refs #1177
This commit is contained in:
parent
b396db54dd
commit
2a33ead4cc
4 changed files with 37 additions and 28 deletions
|
@ -28,6 +28,7 @@
|
|||
|
||||
// stl
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace mapnik { namespace util {
|
||||
|
||||
|
@ -39,6 +40,8 @@ MAPNIK_DECL bool is_relative(std::string const& value);
|
|||
MAPNIK_DECL std::string make_relative(std::string const& filepath, std::string const& base);
|
||||
MAPNIK_DECL std::string make_absolute(std::string const& filepath, std::string const& base);
|
||||
MAPNIK_DECL std::string dirname(std::string const& value);
|
||||
MAPNIK_DECL std::string basename(std::string const& value);
|
||||
MAPNIK_DECL std::vector<std::string> list_directory(std::string const& value);
|
||||
|
||||
}}
|
||||
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#pragma GCC diagnostic ignored "-Wunused-local-typedef"
|
||||
#include <boost/filesystem/operations.hpp>
|
||||
#include <boost/algorithm/string/join.hpp>
|
||||
#include <boost/algorithm/string/predicate.hpp>
|
||||
#pragma GCC diagnostic pop
|
||||
|
@ -171,18 +170,9 @@ bool datasource_cache::register_datasources(std::string const& dir, bool recurse
|
|||
bool success = false;
|
||||
try
|
||||
{
|
||||
boost::filesystem::directory_iterator end_itr;
|
||||
#ifdef _WINDOWS
|
||||
std::wstring wide_dir(mapnik::utf8_to_utf16(dir));
|
||||
for (boost::filesystem::directory_iterator itr(wide_dir); itr != end_itr; ++itr)
|
||||
for (std::string const& file_name : mapnik::util::list_directory(dir))
|
||||
{
|
||||
std::string file_name = mapnik::utf16_to_utf8(itr->path().wstring());
|
||||
#else
|
||||
for (boost::filesystem::directory_iterator itr(dir); itr != end_itr; ++itr)
|
||||
{
|
||||
std::string file_name = itr->path().string();
|
||||
#endif
|
||||
if (boost::filesystem::is_directory(*itr) && recurse)
|
||||
if (mapnik::util::is_directory(file_name) && recurse)
|
||||
{
|
||||
if (register_datasources(file_name, true))
|
||||
{
|
||||
|
@ -191,7 +181,7 @@ bool datasource_cache::register_datasources(std::string const& dir, bool recurse
|
|||
}
|
||||
else
|
||||
{
|
||||
std::string base_name = itr->path().filename().string();
|
||||
std::string base_name = mapnik::util::basename(file_name);
|
||||
if (!boost::algorithm::starts_with(base_name,".") &&
|
||||
mapnik::util::is_regular_file(file_name) &&
|
||||
is_input_plugin(file_name))
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#pragma GCC diagnostic ignored "-Wunused-local-typedef"
|
||||
#include <boost/algorithm/string/predicate.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
|
@ -189,18 +188,9 @@ bool freetype_engine::register_fonts_impl(std::string const& dir,
|
|||
bool success = false;
|
||||
try
|
||||
{
|
||||
boost::filesystem::directory_iterator end_itr;
|
||||
#ifdef _WINDOWS
|
||||
std::wstring wide_dir(mapnik::utf8_to_utf16(dir));
|
||||
for (boost::filesystem::directory_iterator itr(wide_dir); itr != end_itr; ++itr)
|
||||
for (std::string const& file_name : mapnik::util::list_directory(dir))
|
||||
{
|
||||
std::string file_name = mapnik::utf16_to_utf8(itr->path().wstring());
|
||||
#else
|
||||
for (boost::filesystem::directory_iterator itr(dir); itr != end_itr; ++itr)
|
||||
{
|
||||
std::string file_name = itr->path().string();
|
||||
#endif
|
||||
if (boost::filesystem::is_directory(*itr) && recurse)
|
||||
if (mapnik::util::is_directory(file_name) && recurse)
|
||||
{
|
||||
if (register_fonts_impl(file_name, library, font_file_mapping, true))
|
||||
{
|
||||
|
@ -209,7 +199,7 @@ bool freetype_engine::register_fonts_impl(std::string const& dir,
|
|||
}
|
||||
else
|
||||
{
|
||||
std::string base_name = itr->path().filename().string();
|
||||
std::string base_name = mapnik::util::basename(file_name);
|
||||
if (!boost::algorithm::starts_with(base_name,".") &&
|
||||
mapnik::util::is_regular_file(file_name) &&
|
||||
is_font_file(file_name))
|
||||
|
|
30
src/fs.cpp
30
src/fs.cpp
|
@ -25,7 +25,8 @@
|
|||
#include <mapnik/util/fs.hpp>
|
||||
|
||||
// boost
|
||||
#include <boost/filesystem/convenience.hpp>
|
||||
#include <boost/filesystem/operations.hpp> // for absolute, exists, etc
|
||||
#include <boost/filesystem/path.hpp> // for path, operator/
|
||||
|
||||
// stl
|
||||
#include <stdexcept>
|
||||
|
@ -81,7 +82,6 @@ namespace util {
|
|||
return (! child_path.has_root_directory() && ! child_path.has_root_name());
|
||||
}
|
||||
|
||||
|
||||
std::string make_relative(std::string const& filepath, std::string const& base)
|
||||
{
|
||||
#ifdef _WINDOWS
|
||||
|
@ -109,6 +109,32 @@ namespace util {
|
|||
return bp.parent_path().string();
|
||||
}
|
||||
|
||||
std::string basename(std::string const& value)
|
||||
{
|
||||
boost::filesystem::path bp(value);
|
||||
return bp.filename().string();
|
||||
}
|
||||
|
||||
std::vector<std::string> list_directory(std::string const& dir)
|
||||
{
|
||||
std::vector<std::string> listing;
|
||||
boost::filesystem::directory_iterator end_itr;
|
||||
#ifdef _WINDOWS
|
||||
std::wstring wide_dir(mapnik::utf8_to_utf16(dir));
|
||||
for (boost::filesystem::directory_iterator itr(wide_dir); itr != end_itr; ++itr)
|
||||
{
|
||||
listing.emplace_back(mapnik::utf16_to_utf8(itr->path().wstring()));
|
||||
}
|
||||
#else
|
||||
for (boost::filesystem::directory_iterator itr(dir); itr != end_itr; ++itr)
|
||||
{
|
||||
listing.emplace_back(itr->path().string());
|
||||
}
|
||||
#endif
|
||||
return listing;
|
||||
}
|
||||
|
||||
|
||||
} // end namespace util
|
||||
|
||||
} // end namespace mapnik
|
||||
|
|
Loading…
Reference in a new issue