From ab8997f64d069d28c33aca830a6b0574bf6fcda3 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 18 Sep 2007 21:34:57 +0000 Subject: Fix linker issues when doing a plugin build, and (hopefully) also on Windows svn-id: r28950 --- backends/fs/abstract-fs-factory.cpp | 87 +++++++++++++++++++++++++++++++++++++ backends/fs/abstract-fs-factory.h | 8 ++++ backends/fs/dc/dc-fs.cpp | 2 +- backends/fs/fs-factory-maker.cpp | 87 ------------------------------------- backends/fs/gp32/gp32-fs.cpp | 4 +- backends/fs/palmos/palmos-fs.cpp | 2 +- backends/fs/posix/posix-fs.cpp | 2 +- backends/fs/psp/psp_fs.cpp | 2 +- backends/fs/symbian/symbian-fs.cpp | 2 +- backends/fs/windows/windows-fs.cpp | 2 +- backends/module.mk | 6 +-- 11 files changed, 104 insertions(+), 100 deletions(-) create mode 100644 backends/fs/abstract-fs-factory.cpp delete mode 100644 backends/fs/fs-factory-maker.cpp (limited to 'backends') diff --git a/backends/fs/abstract-fs-factory.cpp b/backends/fs/abstract-fs-factory.cpp new file mode 100644 index 0000000000..6126d82737 --- /dev/null +++ b/backends/fs/abstract-fs-factory.cpp @@ -0,0 +1,87 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#include "backends/fs/abstract-fs-factory.h" + +/* + * All the following includes choose, at compile time, which specific backend will be used + * during the execution of the ScummVM. + * + * It has to be done this way because not all the necessary libraries will be available in + * all build environments. Additionally, this results in smaller binaries. + */ +#if defined(__amigaos4__) + #include "backends/fs/amigaos4/amigaos4-fs-factory.cpp" +#elif defined(__DC__) + #include "backends/fs/dc/ronincd-fs-factory.cpp" +#elif defined(__DS__) + #include "backends/fs/ds/ds-fs-factory.cpp" +#elif defined(__GP32__) + #include "backends/fs/gp32/gp32-fs-factory.cpp" +#elif defined(__MORPHOS__) + #include "backends/fs/morphos/abox-fs-factory.cpp" +#elif defined(PALMOS_MODE) + #include "backends/fs/palmos/palmos-fs-factory.cpp" +#elif defined(__PLAYSTATION2__) + #include "backends/fs/ps2/ps2-fs-factory.cpp" +#elif defined(__PSP__) + #include "backends/fs/psp/psp-fs-factory.cpp" +#elif defined(__SYMBIAN32__) + #include "backends/fs/symbian/symbian-fs-factory.cpp" +#elif defined(UNIX) + #include "backends/fs/posix/posix-fs-factory.cpp" +#elif defined(WIN32) + #include "backends/fs/windows/windows-fs-factory.cpp" +#endif + +/** + * Creates concrete FilesystemFactory objects depending on the current architecture. + * + * @return AbstractFilesystemFactory* The specific factory for the current architecture. + */ +AbstractFilesystemFactory *AbstractFilesystemFactory::makeFSFactory() { + #if defined(__amigaos4__) + return &AmigaOSFilesystemFactory::instance(); + #elif defined(__DC__) + return &RoninCDFilesystemFactory::instance(); + #elif defined(__DS__) + return &DSFilesystemFactory::instance(); + #elif defined(__GP32__) + return &GP32FilesystemFactory::instance(); + #elif defined(__MORPHOS__) + return &ABoxFilesystemFactory::instance(); + #elif defined(PALMOS_MODE) + return &PalmOSFilesystemFactory::instance(); + #elif defined(__PLAYSTATION2__) + return &Ps2FilesystemFactory::instance(); + #elif defined(__PSP__) + return &PSPFilesystemFactory::instance(); + #elif defined(__SYMBIAN32__) + return &SymbianFilesystemFactory::instance(); + #elif defined(UNIX) + return &POSIXFilesystemFactory::instance(); + #elif defined(WIN32) + return &WindowsFilesystemFactory::instance(); + #endif +} diff --git a/backends/fs/abstract-fs-factory.h b/backends/fs/abstract-fs-factory.h index c826ef2745..79ec3f7520 100644 --- a/backends/fs/abstract-fs-factory.h +++ b/backends/fs/abstract-fs-factory.h @@ -25,6 +25,7 @@ #ifndef ABSTRACT_FILESYSTEM_FACTORY_H #define ABSTRACT_FILESYSTEM_FACTORY_H +#include "common/stdafx.h" #include "common/str.h" #include "backends/fs/abstract-fs.h" @@ -68,6 +69,13 @@ public: * On Windows, it will be a special node which "contains" all drives (C:, D:, E:). */ virtual AbstractFilesystemNode *makeRootFileNode() const = 0; + + + /** + * Meta-factory method which returns a concrete AbstractFilesystemFactory + * instance depending on the current architecture. + */ + static AbstractFilesystemFactory *makeFSFactory(); }; #endif /*ABSTRACT_FILESYSTEM_FACTORY_H*/ diff --git a/backends/fs/dc/dc-fs.cpp b/backends/fs/dc/dc-fs.cpp index bae13d37e7..0b204dc309 100644 --- a/backends/fs/dc/dc-fs.cpp +++ b/backends/fs/dc/dc-fs.cpp @@ -81,7 +81,7 @@ public: * @param str String containing the path. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; diff --git a/backends/fs/fs-factory-maker.cpp b/backends/fs/fs-factory-maker.cpp deleted file mode 100644 index 045f30cb28..0000000000 --- a/backends/fs/fs-factory-maker.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#include "backends/fs/abstract-fs-factory.h" - -/* - * All the following includes choose, at compile time, which specific backend will be used - * during the execution of the ScummVM. - * - * It has to be done this way because not all the necessary libraries will be available in - * all build environments. Additionally, this results in smaller binaries. - */ -#if defined(__amigaos4__) - #include "backends/fs/amigaos4/amigaos4-fs-factory.cpp" -#elif defined(__DC__) - #include "backends/fs/dc/ronincd-fs-factory.cpp" -#elif defined(__DS__) - #include "backends/fs/ds/ds-fs-factory.cpp" -#elif defined(__GP32__) - #include "backends/fs/gp32/gp32-fs-factory.cpp" -#elif defined(__MORPHOS__) - #include "backends/fs/morphos/abox-fs-factory.cpp" -#elif defined(PALMOS_MODE) - #include "backends/fs/palmos/palmos-fs-factory.cpp" -#elif defined(__PLAYSTATION2__) - #include "backends/fs/ps2/ps2-fs-factory.cpp" -#elif defined(__PSP__) - #include "backends/fs/psp/psp-fs-factory.cpp" -#elif defined(__SYMBIAN32__) - #include "backends/fs/symbian/symbian-fs-factory.cpp" -#elif defined(UNIX) - #include "backends/fs/posix/posix-fs-factory.cpp" -#elif defined(WIN32) - #include "backends/fs/windows/windows-fs-factory.cpp" -#endif - -/** - * Creates concrete FilesystemFactory objects depending on the current architecture. - * - * @return AbstractFilesystemFactory* The specific factory for the current architecture. - */ -static AbstractFilesystemFactory *makeFSFactory() { - #if defined(__amigaos4__) - return &AmigaOSFilesystemFactory::instance(); - #elif defined(__DC__) - return &RoninCDFilesystemFactory::instance(); - #elif defined(__DS__) - return &DSFilesystemFactory::instance(); - #elif defined(__GP32__) - return &GP32FilesystemFactory::instance(); - #elif defined(__MORPHOS__) - return &ABoxFilesystemFactory::instance(); - #elif defined(PALMOS_MODE) - return &PalmOSFilesystemFactory::instance(); - #elif defined(__PLAYSTATION2__) - return &Ps2FilesystemFactory::instance(); - #elif defined(__PSP__) - return &PSPFilesystemFactory::instance(); - #elif defined(__SYMBIAN32__) - return &SymbianFilesystemFactory::instance(); - #elif defined(UNIX) - return &POSIXFilesystemFactory::instance(); - #elif defined(WIN32) - return &WindowsFilesystemFactory::instance(); - #endif -} diff --git a/backends/fs/gp32/gp32-fs.cpp b/backends/fs/gp32/gp32-fs.cpp index a4af5d4fbe..1585bd22f1 100644 --- a/backends/fs/gp32/gp32-fs.cpp +++ b/backends/fs/gp32/gp32-fs.cpp @@ -82,7 +82,7 @@ const char gpRootPath[] = "gp:\\"; * @param str Path to obtain the last component from. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; @@ -214,7 +214,7 @@ bool GP32FilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool //listDir += "/"; while (GpDirEnumList(listDir.c_str(), startIdx++, 1, &dirEntry, &read) == SM_OK) { - if (dirEntry.name[0] == '.') +da if (dirEntry.name[0] == '.') continue; entry._displayName = dirEntry.name; diff --git a/backends/fs/palmos/palmos-fs.cpp b/backends/fs/palmos/palmos-fs.cpp index 508dff428b..d44958254d 100644 --- a/backends/fs/palmos/palmos-fs.cpp +++ b/backends/fs/palmos/palmos-fs.cpp @@ -92,7 +92,7 @@ private: * @param str String containing the path. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; diff --git a/backends/fs/posix/posix-fs.cpp b/backends/fs/posix/posix-fs.cpp index 2e01c551d9..5871d1ef42 100644 --- a/backends/fs/posix/posix-fs.cpp +++ b/backends/fs/posix/posix-fs.cpp @@ -91,7 +91,7 @@ private: * @param str String containing the path. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; diff --git a/backends/fs/psp/psp_fs.cpp b/backends/fs/psp/psp_fs.cpp index 019b13e9e6..04f24a98cc 100644 --- a/backends/fs/psp/psp_fs.cpp +++ b/backends/fs/psp/psp_fs.cpp @@ -82,7 +82,7 @@ public: * @param str String containing the path. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp index d3b39f192c..e8a9553927 100644 --- a/backends/fs/symbian/symbian-fs.cpp +++ b/backends/fs/symbian/symbian-fs.cpp @@ -83,7 +83,7 @@ public: * @param str Path to obtain the last component from. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; diff --git a/backends/fs/windows/windows-fs.cpp b/backends/fs/windows/windows-fs.cpp index 995264f110..da9fc59c35 100644 --- a/backends/fs/windows/windows-fs.cpp +++ b/backends/fs/windows/windows-fs.cpp @@ -124,7 +124,7 @@ private: * @param str Path to obtain the last component from. * @return Pointer to the first char of the last component inside str. */ -static const char *lastPathComponent(const Common::String &str) { +const char *lastPathComponent(const Common::String &str) { const char *start = str.c_str(); const char *cur = start + str.size() - 2; diff --git a/backends/module.mk b/backends/module.mk index 1803a6b945..1eaeb953a9 100644 --- a/backends/module.mk +++ b/backends/module.mk @@ -2,11 +2,7 @@ MODULE := backends MODULE_OBJS := \ events/default/default-events.o \ - fs/posix/posix-fs.o \ - fs/morphos/abox-fs.o \ - fs/windows/windows-fs.o \ - fs/amigaos4/amigaos4-fs.o \ - fs/dc/dc-fs.o \ + fs/abstract-fs-factory.o \ midi/alsa.o \ midi/coreaudio.o \ midi/coremidi.o \ -- cgit v1.2.3