Merge pull request #21165 from bencsikandrei/refactor/simplify-linux-get-install-path

Refactor GetInstallPath for linux
This commit is contained in:
Matt 2024-01-15 22:51:20 +02:00 committed by GitHub
commit 04e8a25c44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 11 deletions

View File

@ -97,25 +97,23 @@ namespace Platform
}
// 2. Try {${exeDir},${cwd},/}/{data,standard system app directories}
// exeDir should come first to allow installing into build dir
std::vector<std::string> prefixes;
auto exePath = Platform::GetCurrentExecutablePath();
prefixes.push_back(Path::GetDirectory(exePath));
prefixes.push_back(GetCurrentWorkingDirectory());
prefixes.push_back("/");
static const char* SearchLocations[] = {
// clang-format off
const std::string prefixes[]{
Path::GetDirectory(Platform::GetCurrentExecutablePath()),
GetCurrentWorkingDirectory(),
"/"
};
static constexpr u8string_view SearchLocations[] = {
"/data",
"../share/openrct2",
# ifdef ORCT2_RESOURCE_DIR
// defined in CMakeLists.txt
ORCT2_RESOURCE_DIR,
# endif // ORCT2_RESOURCE_DIR
"/usr/local/share/openrct2",
"/var/lib/openrct2",
"/usr/share/openrct2",
};
// clang-format on
for (const auto& prefix : prefixes)
{
for (auto searchLocation : SearchLocations)
for (const auto searchLocation : SearchLocations)
{
auto prefixedPath = Path::Combine(prefix, searchLocation);
LOG_VERBOSE("Looking for OpenRCT2 data in %s", prefixedPath.c_str());