From db31c2f832dd4067e4670dd469fe3b696188576b Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 28 Feb 2017 22:49:10 +0300 Subject: Add configure flag for use physfs. New configure option: --without-physfs For now manaplus cant be compiled without physfs. --- src/fs/virtfs.cpp | 30 ++++++++++++++++++++++++++++-- src/fs/virtfstools.cpp | 20 +++++++++++--------- src/fs/virtfstools.h | 8 +++++--- 3 files changed, 44 insertions(+), 14 deletions(-) (limited to 'src/fs') diff --git a/src/fs/virtfs.cpp b/src/fs/virtfs.cpp index 7aa30940c..3ba214dc7 100644 --- a/src/fs/virtfs.cpp +++ b/src/fs/virtfs.cpp @@ -20,8 +20,11 @@ #include "fs/virtfs.h" -#include "fs/virtfsdir.h" +#ifdef USE_PHYSFS #include "fs/virtfsphys.h" +#else // USE_PHYSFS +#include "fs/virtfsdir.h" +#endif // USE_PHYSFS #include "fs/virtfile.h" #include "fs/virtfsfuncs.h" #include "fs/virtlist.h" @@ -34,33 +37,52 @@ namespace VirtFs { void init(const std::string &restrict name) { +#ifdef USE_PHYSFS VirtFsPhys::init(name); +#else // USE_PHYSFS VirtFsDir::init(name); +#endif // USE_PHYSFS updateDirSeparator(); } void updateDirSeparator() { +#ifdef USE_PHYSFS + dirSeparator = VirtFsPhys::getDirSeparator(); +#else // USE_PHYSFS #ifdef WIN32 dirSeparator = "\\"; #else // WIN32 dirSeparator = "/"; #endif // WIN32 +#endif // USE_PHYSFS } const char *getDirSeparator() { +#ifdef USE_PHYSFS + return VirtFsPhys::getDirSeparator(); +#else // USE_PHYSFS return dirSeparator; +#endif // USE_PHYSFS } const char *getBaseDir() { +#ifdef USE_PHYSFS + return VirtFsPhys::getBaseDir(); +#else // USE_PHYSFS return VirtFsDir::getBaseDir(); +#endif // USE_PHYSFS } const char *getUserDir() { +#ifdef USE_PHYSFS + return VirtFsPhys::getUserDir(); +#else // USE_PHYSFS return VirtFsDir::getUserDir(); +#endif // USE_PHYSFS } bool exists(const std::string &restrict name) @@ -147,8 +169,12 @@ namespace VirtFs bool deinit() { - VirtFsDir::deinit(); +#ifdef USE_PHYSFS return VirtFsPhys::deinit(); +#else // USE_PHYSFS + VirtFsDir::deinit(); + return true; +#endif // USE_PHYSFS } void permitLinks(const bool val) diff --git a/src/fs/virtfstools.cpp b/src/fs/virtfstools.cpp index c9e976864..39f1ed413 100644 --- a/src/fs/virtfstools.cpp +++ b/src/fs/virtfstools.cpp @@ -224,34 +224,36 @@ namespace VirtFs } } // namespace VirtFs +#ifdef USE_PHYSFS // +++ temporary add it here -namespace VirtFsDir +namespace VirtFsPhys { void getFiles(const std::string &path, StringVect &list) { - VirtList *const fonts = VirtFsDir::enumerateFiles(path); + VirtList *const fonts = VirtFsPhys::enumerateFiles(path); FOR_EACH (StringVectCIter, i, fonts->names) { - if (!VirtFsDir::isDirectory(path + dirSeparator + *i)) + if (!VirtFsPhys::isDirectory(path + dirSeparator + *i)) list.push_back(*i); } - VirtFsDir::freeList(fonts); + VirtFsPhys::freeList(fonts); } } // namespace VirtFs - +#else // USE_PHYSFS // +++ temporary add it here -namespace VirtFsPhys +namespace VirtFsDir { void getFiles(const std::string &path, StringVect &list) { - VirtList *const fonts = VirtFsPhys::enumerateFiles(path); + VirtList *const fonts = VirtFsDir::enumerateFiles(path); FOR_EACH (StringVectCIter, i, fonts->names) { - if (!VirtFsPhys::isDirectory(path + dirSeparator + *i)) + if (!VirtFsDir::isDirectory(path + dirSeparator + *i)) list.push_back(*i); } - VirtFsPhys::freeList(fonts); + VirtFsDir::freeList(fonts); } } // namespace VirtFs +#endif // USE_PHYSFS diff --git a/src/fs/virtfstools.h b/src/fs/virtfstools.h index 3271fee6f..383327404 100644 --- a/src/fs/virtfstools.h +++ b/src/fs/virtfstools.h @@ -51,18 +51,20 @@ namespace VirtFs std::string loadTextFileString(const std::string &fileName); } // namespace VirtFs +#ifdef USE_PHYSFS // +++ temporary add it here -namespace VirtFsDir +namespace VirtFsPhys { void getFiles(const std::string &path, StringVect &list); } // namespace VirtFs - +#else // USE_PHYSFS // +++ temporary add it here -namespace VirtFsPhys +namespace VirtFsDir { void getFiles(const std::string &path, StringVect &list); } // namespace VirtFs +#endif // USE_PHYSFS #endif // UTILS_VIRTFSTOOLS_H -- cgit v1.2.3-70-g09d2