import python ; import feature : feature ; use-project /torrent : ../.. ; lib boost_python : : darwin boost_python-mt $(boost-library-search-path) ; lib boost_python : : boost_python ; feature visibility : default hidden : composite propagated link-incompatible ; feature.compose hidden : -fvisibility=hidden -fvisibility-inlines-hidden ; feature libtorrent-link : static shared : ; feature libtorrent-python-pic : on off : composite propagated link-incompatible ; feature.compose on : -fPIC ; rule libtorrent_linking ( properties * ) { local result ; if linux && gcc in $(properties) { result += on ; } if gcc in $(properties) || darwin in $(properties) || clang in $(properties) || clang-darwin in $(properties) { result += hidden ; if ( gcc in $(properties) ) { result += -Wl,-Bsymbolic ; } } if source in $(properties) { # linux must link dynamically against boost python because it pulls # in libpthread, which must be linked dynamically since we're building a .so # (the static build of libpthread is not position independent) if shared in $(properties) || linux in $(properties) { result += /boost/python//boost_python/shared ; } else { result += /boost/python//boost_python/static ; } if shared in $(properties) { result += /torrent//torrent/shared/shared ; } else { result += /torrent//torrent/static/static ; } } else { result += boost_python ; if shared in $(properties) { result += /torrent//torrent/shared/shared ; } else { result += /torrent//torrent/static/static ; } } return $(result) ; } python-extension libtorrent : # sources src/module.cpp src/big_number.cpp src/converters.cpp src/create_torrent.cpp src/fingerprint.cpp src/utility.cpp src/session.cpp src/entry.cpp src/torrent_info.cpp src/string.cpp src/torrent_handle.cpp src/torrent_status.cpp src/session_settings.cpp src/version.cpp src/alert.cpp src/datetime.cpp src/peer_info.cpp src/ip_filter.cpp src/magnet_uri.cpp src/error_code.cpp : # requirements src @libtorrent_linking : # default build static static ; install stage_module : libtorrent : . ;