diff --git a/include/libtorrent/Makefile.am b/include/libtorrent/Makefile.am index 017ab1600..963588b64 100644 --- a/include/libtorrent/Makefile.am +++ b/include/libtorrent/Makefile.am @@ -53,6 +53,7 @@ nobase_include_HEADERS = \ error.hpp \ error_code.hpp \ escape_string.hpp \ + export.hpp \ extensions.hpp \ file.hpp \ file_pool.hpp \ diff --git a/include/libtorrent/config.hpp b/include/libtorrent/config.hpp index ec84fd927..9714a272b 100644 --- a/include/libtorrent/config.hpp +++ b/include/libtorrent/config.hpp @@ -100,40 +100,6 @@ POSSIBILITY OF SUCH DAMAGE. #endif #endif -// backwards compatibility with older versions of boost -#if !defined BOOST_SYMBOL_EXPORT && !defined BOOST_SYMBOL_IMPORT -# if defined _MSC_VER || defined __MINGW32__ -# define BOOST_SYMBOL_EXPORT __declspec(dllexport) -# define BOOST_SYMBOL_IMPORT __declspec(dllimport) -# elif __GNU__ >= 4 -# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default"))) -# define BOOST_SYMBOL_IMPORT __attribute__((visibility("default"))) -# else -# define BOOST_SYMBOL_EXPORT -# define BOOST_SYMBOL_IMPORT -# endif -#endif - -#if defined TORRENT_BUILDING_SHARED -# define TORRENT_EXPORT BOOST_SYMBOL_EXPORT -#elif defined TORRENT_LINKING_SHARED -# define TORRENT_EXPORT BOOST_SYMBOL_IMPORT -#endif - -// when this is specified, export a bunch of extra -// symbols, mostly for the unit tests to reach -#if TORRENT_EXPORT_EXTRA -# if defined TORRENT_BUILDING_SHARED -# define TORRENT_EXTRA_EXPORT BOOST_SYMBOL_EXPORT -# elif defined TORRENT_LINKING_SHARED -# define TORRENT_EXTRA_EXPORT BOOST_SYMBOL_IMPORT -# endif -#endif - -#ifndef TORRENT_EXTRA_EXPORT -# define TORRENT_EXTRA_EXPORT -#endif - // ======= GCC ========= #if defined __GNUC__ @@ -499,10 +465,6 @@ int snprintf(char* buf, int len, char const* fmt, ...) #define TORRENT_HAS_FALLOCATE 1 #endif -#ifndef TORRENT_EXPORT -# define TORRENT_EXPORT -#endif - #ifndef TORRENT_DEPRECATED_PREFIX #define TORRENT_DEPRECATED_PREFIX #endif diff --git a/include/libtorrent/ed25519.hpp b/include/libtorrent/ed25519.hpp index 435e5bda4..c2f470cee 100644 --- a/include/libtorrent/ed25519.hpp +++ b/include/libtorrent/ed25519.hpp @@ -1,7 +1,7 @@ #ifndef ED25519_HPP #define ED25519_HPP -#include "libtorrent/config.hpp" // for TORRENT_EXPORT +#include "libtorrent/export.hpp" // for TORRENT_EXPORT enum { diff --git a/include/libtorrent/export.hpp b/include/libtorrent/export.hpp new file mode 100644 index 000000000..a9c388b60 --- /dev/null +++ b/include/libtorrent/export.hpp @@ -0,0 +1,77 @@ +/* + +Copyright (c) 2005-2014, Arvid Norberg +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + * Neither the name of the author nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +#ifndef TORRENT_EXPORT_HPP_INCLUDED +#define TORRENT_EXPORT_HPP_INCLUDED + +#include + +// backwards compatibility with older versions of boost +#if !defined BOOST_SYMBOL_EXPORT && !defined BOOST_SYMBOL_IMPORT +# if defined _MSC_VER || defined __MINGW32__ +# define BOOST_SYMBOL_EXPORT __declspec(dllexport) +# define BOOST_SYMBOL_IMPORT __declspec(dllimport) +# elif __GNU__ >= 4 +# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default"))) +# define BOOST_SYMBOL_IMPORT __attribute__((visibility("default"))) +# else +# define BOOST_SYMBOL_EXPORT +# define BOOST_SYMBOL_IMPORT +# endif +#endif + +#if defined TORRENT_BUILDING_SHARED +# define TORRENT_EXPORT BOOST_SYMBOL_EXPORT +#elif defined TORRENT_LINKING_SHARED +# define TORRENT_EXPORT BOOST_SYMBOL_IMPORT +#endif + +// when this is specified, export a bunch of extra +// symbols, mostly for the unit tests to reach +#if TORRENT_EXPORT_EXTRA +# if defined TORRENT_BUILDING_SHARED +# define TORRENT_EXTRA_EXPORT BOOST_SYMBOL_EXPORT +# elif defined TORRENT_LINKING_SHARED +# define TORRENT_EXTRA_EXPORT BOOST_SYMBOL_IMPORT +# endif +#endif + +#ifndef TORRENT_EXPORT +# define TORRENT_EXPORT +#endif + +#ifndef TORRENT_EXTRA_EXPORT +# define TORRENT_EXTRA_EXPORT +#endif + +#endif +