1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-28 08:48:48 +02:00

Split VCMIDirs::developmentMode to handle data & binaries separately

This commit is contained in:
Ivan Savenko 2022-12-05 22:56:10 +02:00
parent b8a3bcc8f1
commit 538c6e39f9

View File

@ -46,8 +46,8 @@ std::string IVCMIDirs::genHelpString() const
" user cache: " + userCachePath().string() + "\n" " user cache: " + userCachePath().string() + "\n"
" user config: " + userConfigPath().string() + "\n" " user config: " + userConfigPath().string() + "\n"
" user logs: " + userLogsPath().string() + "\n" " user logs: " + userLogsPath().string() + "\n"
" user saves: " + userSavePath().string() + "\n"; " user saves: " + userSavePath().string() + "\n"
" user extracted: " + userExtractedPath().string() + "\n"; // Should end without new-line? " user extracted: " + userExtractedPath().string() + "\n";
} }
void IVCMIDirs::init() void IVCMIDirs::init()
@ -361,13 +361,20 @@ class IVCMIDirsUNIX : public IVCMIDirs
bfs::path clientPath() const override; bfs::path clientPath() const override;
bfs::path serverPath() const override; bfs::path serverPath() const override;
virtual bool developmentMode() const; virtual bool developmentModeData() const;
virtual bool developmentModeBinaries() const;
}; };
bool IVCMIDirsUNIX::developmentMode() const bool IVCMIDirsUNIX::developmentModeData() const
{ {
// We want to be able to run VCMI from single directory. E.g to run from build output directory // We want to be able to run VCMI from single directory. E.g to run from build output directory
return bfs::exists("AI") && bfs::exists("config") && bfs::exists("Mods") && bfs::exists("../CMakeCache.txt"); return bfs::exists("config") && bfs::exists("Mods") && bfs::exists("../CMakeCache.txt");
}
bool IVCMIDirsUNIX::developmentModeBinaries() const
{
// We want to be able to run VCMI from single directory. E.g to run from build output directory
return bfs::exists("AI") && bfs::exists("../CMakeCache.txt");
} }
bfs::path IVCMIDirsUNIX::clientPath() const { return binaryPath() / "vcmiclient"; } bfs::path IVCMIDirsUNIX::clientPath() const { return binaryPath() / "vcmiclient"; }
@ -511,7 +518,7 @@ std::vector<bfs::path> VCMIDirsOSX::dataPaths() const
{ {
std::vector<bfs::path> ret; std::vector<bfs::path> ret;
//FIXME: need some proper codepath for detecting running from build output directory //FIXME: need some proper codepath for detecting running from build output directory
if(developmentMode()) if(developmentModeData())
{ {
ret.push_back("."); ret.push_back(".");
} }
@ -584,7 +591,7 @@ std::vector<bfs::path> VCMIDirsXDG::dataPaths() const
// in vcmi fs last directory has highest priority // in vcmi fs last directory has highest priority
std::vector<bfs::path> ret; std::vector<bfs::path> ret;
if(developmentMode()) if(developmentModeData())
{ {
//For now we'll disable usage of system directories when VCMI running from bin directory //For now we'll disable usage of system directories when VCMI running from bin directory
ret.push_back("."); ret.push_back(".");
@ -616,7 +623,7 @@ std::vector<bfs::path> VCMIDirsXDG::dataPaths() const
bfs::path VCMIDirsXDG::libraryPath() const bfs::path VCMIDirsXDG::libraryPath() const
{ {
if(developmentMode()) if(developmentModeBinaries())
return "."; return ".";
else else
return M_LIB_DIR; return M_LIB_DIR;
@ -624,7 +631,7 @@ bfs::path VCMIDirsXDG::libraryPath() const
bfs::path VCMIDirsXDG::binaryPath() const bfs::path VCMIDirsXDG::binaryPath() const
{ {
if(developmentMode()) if(developmentModeBinaries())
return "."; return ".";
else else
return M_BIN_DIR; return M_BIN_DIR;