diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/resource.cpp | 16 | ||||
-rw-r--r-- | lib/resource.h | 23 |
2 files changed, 39 insertions, 0 deletions
diff --git a/lib/resource.cpp b/lib/resource.cpp new file mode 100644 index 0000000..b9aa4fa --- /dev/null +++ b/lib/resource.cpp @@ -0,0 +1,16 @@ +#include "resource.h" +#include <utility> + +std::filesystem::path base {std::filesystem::current_path() / "res"}; + +void +Resource::setBasePath(std::filesystem::path newbase) +{ + base = std::move(newbase); +} + +std::filesystem::path +Resource::mapPath(const std::filesystem::path & rel) +{ + return std::filesystem::canonical(base / rel); +} diff --git a/lib/resource.h b/lib/resource.h new file mode 100644 index 0000000..958c49d --- /dev/null +++ b/lib/resource.h @@ -0,0 +1,23 @@ +#ifndef RESOURCE_H +#define RESOURCE_H + +#include <filesystem> + +class Resource { +public: + static void setBasePath(std::filesystem::path); + static std::filesystem::path mapPath(const std::filesystem::path &); +}; + +#if defined(RESDIR) && defined(BOOST_TEST_MODULE) +class SetResourcePath { +public: + SetResourcePath() + { + Resource::setBasePath(RESDIR); + } +}; +BOOST_GLOBAL_FIXTURE(SetResourcePath); +#endif + +#endif |