fix python binding linking on msvc (#878)
This commit is contained in:
parent
34a2a7f7d4
commit
66416963eb
|
@ -23,7 +23,6 @@ environment:
|
||||||
- variant: test_release
|
- variant: test_release
|
||||||
compiler: msvc-14.0
|
compiler: msvc-14.0
|
||||||
model: 64
|
model: 64
|
||||||
python: 1
|
|
||||||
linkflags: '"/LIBPATH:C:\\openssl-1.0.1p-vs2015\\lib64"'
|
linkflags: '"/LIBPATH:C:\\openssl-1.0.1p-vs2015\\lib64"'
|
||||||
include: '"c:\\openssl-1.0.1p-vs2015\\include"'
|
include: '"c:\\openssl-1.0.1p-vs2015\\include"'
|
||||||
- variant: test_debug
|
- variant: test_debug
|
||||||
|
|
|
@ -34,6 +34,17 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <libtorrent/bdecode.hpp>
|
#include <libtorrent/bdecode.hpp>
|
||||||
#include <libtorrent/upnp.hpp>
|
#include <libtorrent/upnp.hpp>
|
||||||
#include <libtorrent/socks5_stream.hpp>
|
#include <libtorrent/socks5_stream.hpp>
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
// this fixe mysterious link error on msvc
|
||||||
|
boost::system::error_category const volatile*
|
||||||
|
get_pointer(boost::system::error_category const volatile* p)
|
||||||
|
{
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#include "boost_python.hpp"
|
#include "boost_python.hpp"
|
||||||
|
|
||||||
using namespace boost::python;
|
using namespace boost::python;
|
||||||
|
@ -42,7 +53,9 @@ using boost::system::error_category;
|
||||||
|
|
||||||
void bind_error_code()
|
void bind_error_code()
|
||||||
{
|
{
|
||||||
class_<boost::system::error_category, boost::noncopyable>("error_category", no_init)
|
using boost::noncopyable;
|
||||||
|
|
||||||
|
class_<boost::system::error_category, noncopyable>("error_category", no_init)
|
||||||
.def("name", &error_category::name)
|
.def("name", &error_category::name)
|
||||||
.def("message", &error_category::message)
|
.def("message", &error_category::message)
|
||||||
.def(self == self)
|
.def(self == self)
|
||||||
|
@ -56,34 +69,34 @@ void bind_error_code()
|
||||||
.def("value", &error_code::value)
|
.def("value", &error_code::value)
|
||||||
.def("clear", &error_code::clear)
|
.def("clear", &error_code::clear)
|
||||||
.def("category", &error_code::category
|
.def("category", &error_code::category
|
||||||
, return_internal_reference<>())
|
, return_value_policy<reference_existing_object>())
|
||||||
.def("assign", &error_code::assign)
|
.def("assign", &error_code::assign)
|
||||||
;
|
;
|
||||||
|
|
||||||
def("get_libtorrent_category", &get_libtorrent_category
|
def("get_libtorrent_category", &get_libtorrent_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
|
|
||||||
def("get_upnp_category", &get_upnp_category
|
def("get_upnp_category", &get_upnp_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
|
|
||||||
def("get_http_category", &get_http_category
|
def("get_http_category", &get_http_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
|
|
||||||
def("get_socks_category", &get_socks_category
|
def("get_socks_category", &get_socks_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
|
|
||||||
#if TORRENT_USE_I2P
|
#if TORRENT_USE_I2P
|
||||||
def("get_i2p_category", &get_i2p_category
|
def("get_i2p_category", &get_i2p_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
def("get_bdecode_category", &get_bdecode_category
|
def("get_bdecode_category", &get_bdecode_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
|
|
||||||
def("generic_category", &boost::system::generic_category
|
def("generic_category", &boost::system::generic_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
|
|
||||||
def("system_category", &boost::system::system_category
|
def("system_category", &boost::system::system_category
|
||||||
, return_internal_reference<>());
|
, return_value_policy<reference_existing_object>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,23 @@
|
||||||
#include <libtorrent/aux_/session_impl.hpp> // for settings_map()
|
#include <libtorrent/aux_/session_impl.hpp> // for settings_map()
|
||||||
#include <libtorrent/torrent_info.hpp>
|
#include <libtorrent/torrent_info.hpp>
|
||||||
#include <libtorrent/kademlia/item.hpp> // for sign_mutable_item
|
#include <libtorrent/kademlia/item.hpp> // for sign_mutable_item
|
||||||
|
#include <libtorrent/alert.hpp>
|
||||||
#include <libtorrent/extensions/lt_trackers.hpp>
|
#include <libtorrent/extensions/lt_trackers.hpp>
|
||||||
#include <libtorrent/extensions/metadata_transfer.hpp>
|
#include <libtorrent/extensions/metadata_transfer.hpp>
|
||||||
#include <libtorrent/extensions/smart_ban.hpp>
|
#include <libtorrent/extensions/smart_ban.hpp>
|
||||||
#include <libtorrent/extensions/ut_metadata.hpp>
|
#include <libtorrent/extensions/ut_metadata.hpp>
|
||||||
#include <libtorrent/extensions/ut_pex.hpp>
|
#include <libtorrent/extensions/ut_pex.hpp>
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
// this fixes mysterious link error on msvc
|
||||||
|
libtorrent::alert const volatile*
|
||||||
|
get_pointer(libtorrent::alert const volatile* p)
|
||||||
|
{
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#include "gil.hpp"
|
#include "gil.hpp"
|
||||||
#include "bytes.hpp"
|
#include "bytes.hpp"
|
||||||
|
|
||||||
|
@ -323,8 +333,11 @@ namespace
|
||||||
alert const*
|
alert const*
|
||||||
wait_for_alert(lt::session& s, int ms)
|
wait_for_alert(lt::session& s, int ms)
|
||||||
{
|
{
|
||||||
allow_threading_guard guard;
|
alert const* a;
|
||||||
alert const* a = s.wait_for_alert(milliseconds(ms));
|
{
|
||||||
|
allow_threading_guard guard;
|
||||||
|
a = s.wait_for_alert(milliseconds(ms));
|
||||||
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -415,10 +428,9 @@ namespace
|
||||||
}
|
}
|
||||||
|
|
||||||
list ret;
|
list ret;
|
||||||
for (std::vector<alert*>::iterator i = alerts.begin()
|
for (alert* a : alerts)
|
||||||
, end(alerts.end()); i != end; ++i)
|
|
||||||
{
|
{
|
||||||
ret.append(boost::python::ptr(*i));
|
ret.append(boost::python::ptr(a));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -759,8 +771,7 @@ void bind_session()
|
||||||
.def("load_state", &load_state, (arg("entry"), arg("flags") = 0xffffffff))
|
.def("load_state", &load_state, (arg("entry"), arg("flags") = 0xffffffff))
|
||||||
.def("save_state", &save_state, (arg("entry"), arg("flags") = 0xffffffff))
|
.def("save_state", &save_state, (arg("entry"), arg("flags") = 0xffffffff))
|
||||||
.def("pop_alerts", &pop_alerts)
|
.def("pop_alerts", &pop_alerts)
|
||||||
.def("wait_for_alert", &wait_for_alert, return_internal_reference<>()
|
.def("wait_for_alert", &wait_for_alert, return_internal_reference<>())
|
||||||
)
|
|
||||||
.def("add_extension", &add_extension)
|
.def("add_extension", &add_extension)
|
||||||
#ifndef TORRENT_NO_DEPRECATE
|
#ifndef TORRENT_NO_DEPRECATE
|
||||||
#if TORRENT_USE_I2P
|
#if TORRENT_USE_I2P
|
||||||
|
|
|
@ -16,6 +16,7 @@ project
|
||||||
<source>setup_dht.cpp
|
<source>setup_dht.cpp
|
||||||
<source>create_torrent.cpp
|
<source>create_torrent.cpp
|
||||||
<source>utils.cpp
|
<source>utils.cpp
|
||||||
|
<toolset>msvc:<cflags>/wd4275
|
||||||
: default-build
|
: default-build
|
||||||
<threading>multi
|
<threading>multi
|
||||||
<invariant-checks>full
|
<invariant-checks>full
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 0c796e3e0dea7ca05eef3ded2cf3806ef19a1413
|
Subproject commit 1df1d608358ed93cc5024ad731df7d047508554f
|
Loading…
Reference in New Issue