2005-11-01 19:30:39 +01:00
|
|
|
/*
|
|
|
|
|
|
|
|
Copyright (c) 2005, 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_CONFIG_HPP_INCLUDED
|
|
|
|
#define TORRENT_CONFIG_HPP_INCLUDED
|
|
|
|
|
|
|
|
#include <boost/config.hpp>
|
2008-06-04 09:57:07 +02:00
|
|
|
#include <boost/version.hpp>
|
2005-11-01 19:30:39 +01:00
|
|
|
|
2009-05-15 17:52:15 +02:00
|
|
|
#ifndef WIN32
|
|
|
|
#define __STDC_FORMAT_MACROS
|
|
|
|
#include <inttypes.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef PRId64
|
|
|
|
#ifdef _WIN32
|
|
|
|
#define PRId64 "I64d"
|
|
|
|
#else
|
|
|
|
#define PRId64 "lld"
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2005-11-01 19:30:39 +01:00
|
|
|
#if defined(__GNUC__) && __GNUC__ >= 4
|
|
|
|
|
2007-08-11 17:12:21 +02:00
|
|
|
#define TORRENT_DEPRECATED __attribute__ ((deprecated))
|
|
|
|
|
2005-11-01 19:30:39 +01:00
|
|
|
# if defined(TORRENT_BUILDING_SHARED) || defined(TORRENT_LINKING_SHARED)
|
|
|
|
# define TORRENT_EXPORT __attribute__ ((visibility("default")))
|
|
|
|
# else
|
|
|
|
# define TORRENT_EXPORT
|
|
|
|
# endif
|
|
|
|
|
2005-11-02 21:59:36 +01:00
|
|
|
#elif defined(__GNUC__)
|
|
|
|
|
|
|
|
# define TORRENT_EXPORT
|
|
|
|
|
2005-11-01 19:30:39 +01:00
|
|
|
#elif defined(BOOST_MSVC)
|
|
|
|
|
2009-04-26 23:21:31 +02:00
|
|
|
#pragma warning(disable: 4258)
|
2009-04-30 19:30:14 +02:00
|
|
|
#pragma warning(disable: 4251)
|
2009-04-26 23:21:31 +02:00
|
|
|
|
2005-11-01 19:30:39 +01:00
|
|
|
# if defined(TORRENT_BUILDING_SHARED)
|
|
|
|
# define TORRENT_EXPORT __declspec(dllexport)
|
|
|
|
# elif defined(TORRENT_LINKING_SHARED)
|
|
|
|
# define TORRENT_EXPORT __declspec(dllimport)
|
|
|
|
# else
|
|
|
|
# define TORRENT_EXPORT
|
|
|
|
# endif
|
|
|
|
|
|
|
|
#else
|
|
|
|
# define TORRENT_EXPORT
|
|
|
|
#endif
|
|
|
|
|
2007-08-11 17:12:21 +02:00
|
|
|
#ifndef TORRENT_DEPRECATED
|
|
|
|
#define TORRENT_DEPRECATED
|
|
|
|
#endif
|
2005-11-01 19:30:39 +01:00
|
|
|
|
2008-02-18 01:36:17 +01:00
|
|
|
// set up defines for target environments
|
|
|
|
#if (defined __APPLE__ && __MACH__) || defined __FreeBSD__ || defined __NetBSD__ \
|
|
|
|
|| defined __OpenBSD__ || defined __bsdi__ || defined __DragonFly__ \
|
|
|
|
|| defined __FreeBSD_kernel__
|
|
|
|
#define TORRENT_BSD
|
|
|
|
#elif defined __linux__
|
|
|
|
#define TORRENT_LINUX
|
|
|
|
#elif defined WIN32
|
|
|
|
#define TORRENT_WINDOWS
|
2009-01-27 09:24:48 +01:00
|
|
|
#elif defined sun || defined __sun
|
|
|
|
#define TORRENT_SOLARIS
|
2008-02-18 01:36:17 +01:00
|
|
|
#else
|
|
|
|
#warning unkown OS, assuming BSD
|
|
|
|
#define TORRENT_BSD
|
|
|
|
#endif
|
|
|
|
|
2009-03-31 09:45:54 +02:00
|
|
|
#define TORRENT_USE_IPV6 1
|
2009-03-31 10:15:21 +02:00
|
|
|
#define TORRENT_USE_MLOCK 1
|
2009-04-04 10:23:53 +02:00
|
|
|
#define TORRENT_USE_READV 1
|
|
|
|
#define TORRENT_USE_WRITEV 1
|
2009-05-13 03:02:06 +02:00
|
|
|
|
|
|
|
#ifdef TORRENT_DEBUG
|
2009-04-04 11:52:25 +02:00
|
|
|
#define TORRENT_USE_IOSTREAM 1
|
2009-05-13 03:02:06 +02:00
|
|
|
#else
|
|
|
|
#define TORRENT_USE_IOSTREAM 0
|
|
|
|
#endif
|
2009-03-31 10:15:21 +02:00
|
|
|
|
2008-06-04 09:57:07 +02:00
|
|
|
// should wpath or path be used?
|
2008-07-20 18:13:52 +02:00
|
|
|
#if defined UNICODE && !defined BOOST_FILESYSTEM_NARROW_ONLY \
|
2008-12-20 23:37:40 +01:00
|
|
|
&& BOOST_VERSION >= 103400 && !defined __APPLE__
|
2008-06-04 09:57:07 +02:00
|
|
|
#define TORRENT_USE_WPATH 1
|
|
|
|
#else
|
|
|
|
#define TORRENT_USE_WPATH 0
|
|
|
|
#endif
|
2008-02-18 01:36:17 +01:00
|
|
|
|
2008-11-17 19:27:32 +01:00
|
|
|
#ifdef TORRENT_WINDOWS
|
|
|
|
// this is the maximum number of characters in a
|
|
|
|
// path element / filename on windows
|
|
|
|
#define NAME_MAX 255
|
2009-05-06 02:52:33 +02:00
|
|
|
#define snprintf sprintf_s
|
2009-04-06 19:15:19 +02:00
|
|
|
#define strtoll _strtoi64
|
2008-11-17 19:27:32 +01:00
|
|
|
#endif
|
|
|
|
|
2008-12-28 04:01:36 +01:00
|
|
|
#if (defined(TORRENT_LOGGING) || defined(TORRENT_VERBOSE_LOGGING)) && !defined (TORRENT_UPNP_LOGGING)
|
|
|
|
#define TORRENT_UPNP_LOGGING
|
|
|
|
#endif
|
|
|
|
|
2009-03-01 01:02:33 +01:00
|
|
|
#if !TORRENT_USE_WPATH && defined TORRENT_LINUX
|
|
|
|
// libiconv presnce, not implemented yet
|
|
|
|
#define TORRENT_USE_LOCALE_FILENAMES 1
|
|
|
|
#else
|
|
|
|
#define TORRENT_USE_LOCALE_FILENAMES 0
|
|
|
|
#endif
|
|
|
|
|
2009-05-20 10:57:08 +02:00
|
|
|
#if !defined(TORRENT_READ_HANDLER_MAX_SIZE)
|
2009-05-21 13:51:52 +02:00
|
|
|
# define TORRENT_READ_HANDLER_MAX_SIZE 256
|
2009-05-20 10:57:08 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if !defined(TORRENT_WRITE_HANDLER_MAX_SIZE)
|
2009-05-21 13:51:52 +02:00
|
|
|
# define TORRENT_WRITE_HANDLER_MAX_SIZE 256
|
2009-05-20 10:57:08 +02:00
|
|
|
#endif
|
2009-03-01 01:02:33 +01:00
|
|
|
|
2005-11-01 19:30:39 +01:00
|
|
|
#endif // TORRENT_CONFIG_HPP_INCLUDED
|
|
|
|
|