diff options
author | Tobias Markmann <tm@ayena.de> | 2015-06-08 16:47:53 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2015-06-14 20:10:53 (GMT) |
commit | 823d751ca2ca5c7b36ce674f20c57f7a5196d992 (patch) | |
tree | 25a9ad697d3ba2e117d8e8ccd07671ba7e91054a | |
parent | 0e9e80c94a0a59b2c348c3dcbc35d90f6fe4b194 (diff) | |
download | swift-823d751ca2ca5c7b36ce674f20c57f7a5196d992.zip swift-823d751ca2ca5c7b36ce674f20c57f7a5196d992.tar.bz2 |
Fix Swiften DLL building on Windows
Template classes cannot have SWIFTEN_API annotations as with annotation
code for instantiations of the template are expected to be in the DLL
which cannot be guaranteed for any user type. With the complete
implementation in available in the header it is not needed because
3rdParty Swiften users can instantiate an implementation as needed.
This also conditionally includes SQLiteHistoryStorage.h conditionally
in MemoryStorages.cpp, as otherwise the linker will expect an
implementation of SQLiteHistoryStorage in the DLL. However, it is only
built into the DLL if experimental features are turned on.
Test-Information:
Tested with experimental=on/off and swiften_dll=on/off.
Change-Id: Ieec85675c167ec34cffd4745ac854a5949fb2037
-rw-r--r-- | Swiften/Client/MemoryStorages.cpp | 4 | ||||
-rw-r--r-- | Swiften/Parser/GenericPayloadParser.h | 2 | ||||
-rw-r--r-- | Swiften/Parser/GenericPayloadParserFactory.h | 2 | ||||
-rw-r--r-- | Swiften/Parser/GenericPayloadParserFactory2.h | 2 | ||||
-rw-r--r-- | Swiften/Parser/GenericPayloadTreeParser.h | 2 | ||||
-rw-r--r-- | Swiften/Serializer/GenericPayloadSerializer.h | 2 |
6 files changed, 8 insertions, 6 deletions
diff --git a/Swiften/Client/MemoryStorages.cpp b/Swiften/Client/MemoryStorages.cpp index f0f1493..fc65cd5 100644 --- a/Swiften/Client/MemoryStorages.cpp +++ b/Swiften/Client/MemoryStorages.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2013 Isode Limited. + * Copyright (c) 2010-2015 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -9,7 +9,9 @@ #include <Swiften/Avatars/AvatarMemoryStorage.h> #include <Swiften/Disco/CapsMemoryStorage.h> #include <Swiften/Roster/RosterMemoryStorage.h> +#ifdef SWIFT_EXPERIMENTAL_HISTORY #include <Swiften/History/SQLiteHistoryStorage.h> +#endif namespace Swift { diff --git a/Swiften/Parser/GenericPayloadParser.h b/Swiften/Parser/GenericPayloadParser.h index 7bc990a..b6cd2d7 100644 --- a/Swiften/Parser/GenericPayloadParser.h +++ b/Swiften/Parser/GenericPayloadParser.h @@ -23,7 +23,7 @@ namespace Swift { * payload. */ template<typename PAYLOAD_TYPE> - class SWIFTEN_API GenericPayloadParser : public PayloadParser { + class GenericPayloadParser : public PayloadParser { public: GenericPayloadParser() : PayloadParser() { payload_ = boost::make_shared<PAYLOAD_TYPE>(); diff --git a/Swiften/Parser/GenericPayloadParserFactory.h b/Swiften/Parser/GenericPayloadParserFactory.h index fd6d403..8e476c0 100644 --- a/Swiften/Parser/GenericPayloadParserFactory.h +++ b/Swiften/Parser/GenericPayloadParserFactory.h @@ -16,7 +16,7 @@ namespace Swift { * A generic class for PayloadParserFactories that parse a specific payload (given as the template parameter of the class). */ template<typename PARSER_TYPE> - class SWIFTEN_API GenericPayloadParserFactory : public PayloadParserFactory { + class GenericPayloadParserFactory : public PayloadParserFactory { public: /** * Construct a parser factory that can parse the given top-level tag in the given namespace. diff --git a/Swiften/Parser/GenericPayloadParserFactory2.h b/Swiften/Parser/GenericPayloadParserFactory2.h index 09a2dbf..633050e 100644 --- a/Swiften/Parser/GenericPayloadParserFactory2.h +++ b/Swiften/Parser/GenericPayloadParserFactory2.h @@ -17,7 +17,7 @@ namespace Swift { * A generic class for PayloadParserFactories that parse a specific payload (given as the template parameter of the class). */ template<typename PARSER_TYPE> - class SWIFTEN_API GenericPayloadParserFactory2 : public PayloadParserFactory { + class GenericPayloadParserFactory2 : public PayloadParserFactory { public: /** * Construct a parser factory that can parse the given top-level tag in the given namespace. diff --git a/Swiften/Parser/GenericPayloadTreeParser.h b/Swiften/Parser/GenericPayloadTreeParser.h index d90903c..37505ac 100644 --- a/Swiften/Parser/GenericPayloadTreeParser.h +++ b/Swiften/Parser/GenericPayloadTreeParser.h @@ -20,7 +20,7 @@ namespace Swift { * Generic parser offering something a bit like a DOM to work with. */ template<typename PAYLOAD_TYPE> - class SWIFTEN_API GenericPayloadTreeParser : public GenericPayloadParser<PAYLOAD_TYPE> { + class GenericPayloadTreeParser : public GenericPayloadParser<PAYLOAD_TYPE> { public: virtual void handleStartElement(const std::string& element, const std::string& xmlns, const AttributeMap& attributes) { if (!root_) { diff --git a/Swiften/Serializer/GenericPayloadSerializer.h b/Swiften/Serializer/GenericPayloadSerializer.h index e964d80..f02ccda 100644 --- a/Swiften/Serializer/GenericPayloadSerializer.h +++ b/Swiften/Serializer/GenericPayloadSerializer.h @@ -13,7 +13,7 @@ namespace Swift { template<typename PAYLOAD_TYPE> - class SWIFTEN_API GenericPayloadSerializer : public PayloadSerializer { + class GenericPayloadSerializer : public PayloadSerializer { public: virtual std::string serialize(boost::shared_ptr<Payload> element) const { return serializePayload(boost::dynamic_pointer_cast<PAYLOAD_TYPE>(element)); |