aboutsummaryrefslogtreecommitdiff
path: root/core/src/Utils/StandardDirectories.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Utils/StandardDirectories.cpp')
-rw-r--r--core/src/Utils/StandardDirectories.cpp78
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;
-}