diff options
Diffstat (limited to 'core/src/Utils/StandardDirectories.cpp')
-rw-r--r-- | core/src/Utils/StandardDirectories.cpp | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/core/src/Utils/StandardDirectories.cpp b/core/src/Utils/StandardDirectories.cpp deleted file mode 100644 index 2202f51..0000000 --- a/core/src/Utils/StandardDirectories.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "StandardDirectories.hpp" - -#include <filesystem> -#include <stdexcept> - -namespace fs = std::filesystem; - -#if defined(_WIN32) -// https://stackoverflow.com/questions/54499256/how-to-find-the-saved-games-folder-programmatically-in-c-c -# include <ShlObj_core.h> -# include <objbase.h> -# pragma comment(lib, "shell32.lib") -# pragma comment(lib, "ole32.lib") - -static fs::path GetAppDataRoaming() -{ - PWSTR path = nullptr; - HRESULT hr = SHGetKnownFolderPath(FOLDERID_RoamingAppData, KF_FLAG_CREATE, nullptr, &path); - if (SUCCEEDED(hr)) { - auto dataDir = fs::path(path); - CoTaskMemFree(path); - - fs::create_directories(dataDir); - return dataDir; - } else { - fs::path dataDir("~/AppData/Roaming"); - fs::create_directories(dataDir); - return dataDir; - } -} - -#elif defined(__APPLE__) -// TODO -#elif defined(__linux__) -# include <cstdlib> - -static fs::path GetEnvVar(const char* name, const char* backup) -{ - if (const char* path = std::getenv(name)) { - fs::path dataDir(path); - fs::create_directories(dataDir); - return dataDir; - } else { - fs::path dataDir(backup); - fs::create_directories(dataDir); - return dataDir; - } -} - -#endif - -const std::filesystem::path& StandardDirectories::UserData() -{ - static auto userDataDir = []() -> fs::path { -#if defined(_WIN32) - return GetAppDataRoaming(); -#elif defined(__APPLE__) - // TODO where? -#elif defined(__linux__) - return GetEnvVar("XDG_DATA_HOME", "~/.local/share"); -#endif - }(); - return userDataDir; -} - -const std::filesystem::path& StandardDirectories::UserConfig() -{ - static auto userConfigDir = []() -> fs::path { -#if defined(_WIN32) - return GetAppDataRoaming(); -#elif defined(__APPLE__) - // TODO where? -#elif defined(__linux__) - return GetEnvVar("XDG_CONFIG_HOME", "~/.config"); -#endif - }(); - return userConfigDir; -} |