updated build system
This commit is contained in:
@ -30,10 +30,13 @@
|
||||
namespace {
|
||||
[[nodiscard]] auto resolve(std::string path) -> std::string {
|
||||
#if defined(_WIN32)
|
||||
if (repertory::utils::string::contains(path, "~\\") ||
|
||||
repertory::utils::string::contains(path, "%")) {
|
||||
if (repertory::utils::string::contains(path, "~\\")) {
|
||||
repertory::utils::string::replace(path, "~\\", "%USERPROFILE%\\");
|
||||
} else if (repertory::utils::string::contains(path, "~/")) {
|
||||
repertory::utils::string::replace(path, "~/", "%USERPROFILE%\\");
|
||||
}
|
||||
|
||||
if (repertory::utils::string::contains(path, "%")) {
|
||||
auto size = ::ExpandEnvironmentStringsA(path.c_str(), nullptr, 0);
|
||||
|
||||
std::string dest;
|
||||
@ -43,6 +46,10 @@ namespace {
|
||||
path = dest.c_str();
|
||||
}
|
||||
#else // !defined (_WIN32)
|
||||
if (repertory::utils::string::contains(path, "~\\")) {
|
||||
repertory::utils::string::replace(path, "~\\", "~/");
|
||||
}
|
||||
|
||||
if (repertory::utils::string::contains(path, "~/")) {
|
||||
std::string home{};
|
||||
auto res =
|
||||
@ -57,11 +64,11 @@ namespace {
|
||||
throw std::runtime_error("failed to getpwuid: " + res.reason);
|
||||
}
|
||||
|
||||
return repertory::utils::string::replace(path, "~/", home + "/");
|
||||
path = repertory::utils::string::replace(path, "~/", home + "/");
|
||||
}
|
||||
#endif // defined (_WIN32)
|
||||
|
||||
return path;
|
||||
return finalize(path);
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@ -72,7 +79,7 @@ auto absolute(std::string_view path) -> std::string {
|
||||
return abs_path;
|
||||
}
|
||||
|
||||
abs_path = resolve(finalize(abs_path));
|
||||
abs_path = resolve(abs_path);
|
||||
#if defined(_WIN32)
|
||||
if (not utils::string::contains(abs_path, dot)) {
|
||||
return abs_path;
|
||||
|
Reference in New Issue
Block a user