rely on boost configs symbol export macro, make sure boost thinks it is built as a shared library when linked into a shared library
This commit is contained in:
parent
250f1645b3
commit
7f2d6325df
9
Jamfile
9
Jamfile
|
@ -161,6 +161,15 @@ rule linking ( properties * )
|
||||||
{
|
{
|
||||||
if <boost-link>static in $(properties)
|
if <boost-link>static in $(properties)
|
||||||
{
|
{
|
||||||
|
if <link>shared in $(properties)
|
||||||
|
{
|
||||||
|
# if libtorrent is being built as a shared library
|
||||||
|
# but we're linking against boost statically, we still
|
||||||
|
# need to make boost think it's being built as a shared
|
||||||
|
# library, so that it properly exports its symbols
|
||||||
|
result += <define>BOOST_ALL_DYN_LINK ;
|
||||||
|
}
|
||||||
|
|
||||||
if <toolset>gcc in $(properties) && <link>shared in $(properties)
|
if <toolset>gcc in $(properties) && <link>shared in $(properties)
|
||||||
{
|
{
|
||||||
result += <fpic>on ;
|
result += <fpic>on ;
|
||||||
|
|
|
@ -60,6 +60,11 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#endif
|
#endif
|
||||||
#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
|
||||||
|
|
||||||
// ======= GCC =========
|
// ======= GCC =========
|
||||||
|
|
||||||
|
@ -69,24 +74,10 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
# define TORRENT_DEPRECATED __attribute__ ((deprecated))
|
# define TORRENT_DEPRECATED __attribute__ ((deprecated))
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// GCC pre 4.0 did not have support for the visibility attribute
|
|
||||||
# if __GNUC__ >= 4
|
|
||||||
# if defined(TORRENT_BUILDING_SHARED) || defined(TORRENT_LINKING_SHARED)
|
|
||||||
# define TORRENT_EXPORT __attribute__ ((visibility("default")))
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
|
|
||||||
// ======= SUNPRO =========
|
// ======= SUNPRO =========
|
||||||
|
|
||||||
#elif defined __SUNPRO_CC
|
#elif defined __SUNPRO_CC
|
||||||
|
|
||||||
# if __SUNPRO_CC >= 0x550
|
|
||||||
# if defined(TORRENT_BUILDING_SHARED) || defined(TORRENT_LINKING_SHARED)
|
|
||||||
# define TORRENT_EXPORT __global
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
// SunPRO seems to have an overly-strict
|
// SunPRO seems to have an overly-strict
|
||||||
// definition of POD types and doesn't
|
// definition of POD types and doesn't
|
||||||
// seem to allow boost::array in unions
|
// seem to allow boost::array in unions
|
||||||
|
@ -107,12 +98,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#pragma warning(disable: 4996)
|
#pragma warning(disable: 4996)
|
||||||
#define strdup _strdup
|
#define strdup _strdup
|
||||||
|
|
||||||
# if defined(TORRENT_BUILDING_SHARED)
|
|
||||||
# define TORRENT_EXPORT __declspec(dllexport)
|
|
||||||
# elif defined(TORRENT_LINKING_SHARED)
|
|
||||||
# define TORRENT_EXPORT __declspec(dllimport)
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#define TORRENT_DEPRECATED_PREFIX __declspec(deprecated)
|
#define TORRENT_DEPRECATED_PREFIX __declspec(deprecated)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue