From bde4a9f40bb4af39270a124d5ef9571a83305d0a Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 30 Jan 2021 20:36:42 +0000 Subject: Restructure to allow a resource path and testing --- lib/resource.cpp | 16 ++++++++++++++++ lib/resource.h | 23 +++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 lib/resource.cpp create mode 100644 lib/resource.h (limited to 'lib') 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 + +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 + +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 -- cgit v1.2.3