1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#include <string>
#include <cpplocate/cpplocate.h>
#include <cpplocate/ModuleInfo.h>
namespace common
{
std::string normalizePath(const std::string & filepath)
{
auto copy = filepath;
std::replace(copy.begin(), copy.end(), '\\', '/');
auto i = copy.find_last_of('/');
if (i == copy.size() - 1)
copy = copy.substr(0, copy.size() - 1);
return copy;
}
std::string retrieveDataPath(const std::string & module, const std::string & key)
{
const auto moduleInfo = cpplocate::findModule(module);
auto dataPath = moduleInfo.value(key);
dataPath = normalizePath(dataPath);
if (dataPath.empty())
dataPath = "data/";
else
dataPath += "/";
return dataPath;
}
}
|