diff --git a/Makefile.am b/Makefile.am index 48b684ea6..3d91a346d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -120,6 +120,7 @@ EXTRA_DIST = \ Jamfile \ Jamroot.jam \ CMakeLists.txt \ + setup.py \ LICENSE \ $(DOCS_PAGES) \ $(DOCS_IMAGES) \ diff --git a/bindings/python/setup.py b/bindings/python/setup.py index 944b469d6..f4cd49324 100644 --- a/bindings/python/setup.py +++ b/bindings/python/setup.py @@ -71,7 +71,7 @@ if '--bjam' in sys.argv or ldflags == None or extra_cmd == None: parallel_builds = ' -j%d' % multiprocessing.cpu_count() # build libtorrent using bjam and build the installer with distutils - cmdline = 'bjam boost=source link=static boost-link=static release optimization=space stage_module --abbreviate-paths' + toolset + parallel_builds + cmdline = 'b2 boost=source link=static boost-link=static release optimization=space stage_module --abbreviate-paths' + toolset + parallel_builds print(cmdline) if os.system(cmdline) != 0: print('build failed') diff --git a/examples/client_test.cpp b/examples/client_test.cpp index b7eb0a031..6f126a949 100644 --- a/examples/client_test.cpp +++ b/examples/client_test.cpp @@ -649,7 +649,7 @@ std::vector list_dir(std::string path HANDLE handle = FindFirstFileW(wpath.c_str(), &fd); if (handle == INVALID_HANDLE_VALUE) { - ec.assign(GetLastError(), boost::system::sytem_category()); + ec.assign(GetLastError(), boost::system::system_category()); return ret; } diff --git a/setup.py b/setup.py index fc687d8d9..479375590 100644 --- a/setup.py +++ b/setup.py @@ -1,114 +1,3 @@ -#!/usr/bin/env python - -from distutils import sysconfig -from distutils.core import setup, Extension import os -import platform -import sys -import shutil -import multiprocessing -import subprocess - -def parse_cmd(cmdline, prefix, keep_prefix = False): - ret = [] - for token in cmdline.split(): - if token[:len(prefix)] == prefix: - if keep_prefix: - ret.append(token) - else: - ret.append(token[len(prefix):]) - return ret - -def arch(): - if platform.system() != 'Darwin': return [] - a = os.uname()[4] - if a == 'Power Macintosh': a = 'ppc' - return ['-arch', a] - -def target_specific(): - - if platform.system() != 'Darwin': return [] - - # on mavericks, clang will fail when unknown arguments are - # passed in. python distutils will pass in arguments it doesn't - # know about - return ['-Wno-error=unused-command-line-argument-hard-error-in-future'] - -try: - extra_cmd = open('compile_flags').read() -except: - extra_cmd = None - -try: - ldflags = open('link_flags').read() -except: - ldflags = None - -ext = None -packages = None - -if '--bjam' in sys.argv or ldflags == None or extra_cmd == None: - - del sys.argv[sys.argv.index('--bjam')] - - if not '--help' in sys.argv \ - and not '--help-commands' in sys.argv: - - toolset = '' - file_ext = '.so' - - if platform.system() == 'Windows': - # msvc 9.0 (2008) is the official windows compiler for python 2.6 - # http://docs.python.org/whatsnew/2.6.html#build-and-c-api-changes - toolset = ' msvc-9.0' - file_ext = '.pyd' - - parallell_builds = ' -j%d' % multiprocessing.cpu_count() - - # build libtorrent using bjam and build the installer with distutils - cmdline = 'bjam boost=source link=static geoip=static boost-link=static release optimization=space stage_module --abbreviate-paths' + toolset + parallell_builds - print cmdline - if os.system(cmdline) != 0: - print('build failed') - sys.exit(1) - - try: os.mkdir('build') - except: pass - try: shutil.rmtree('build/lib') - except: pass - try: os.mkdir('build/lib') - except: pass - try: os.mkdir('libtorrent') - except: pass - shutil.copyfile('libtorrent' + file_ext, 'build/lib/libtorrent' + file_ext) - - packages = ['libtorrent'] - -else: - - source_list = os.listdir(os.path.join(os.path.dirname(__file__), "src")) - source_list = [os.path.join("src", s) for s in source_list if s.endswith(".cpp")] - - ext = [Extension('libtorrent', - sources = source_list, - language='c++', - include_dirs = ['../../include'] + parse_cmd(extra_cmd, '-I'), - library_dirs = ['../../src/.libs'] + parse_cmd(extra_cmd, '-L'), - extra_link_args = ldflags.split() + arch(), - extra_compile_args = parse_cmd(extra_cmd, '-D', True) + arch() \ - + target_specific(), - libraries = ['torrent-rasterbar'] + parse_cmd(extra_cmd, '-l'))] - -setup(name = 'python-libtorrent', - version = '1.0.1', - author = 'Arvid Norberg', - author_email = 'arvid@rasterbar.com', - description = 'Python bindings for libtorrent-rasterbar', - long_description = 'Python bindings for libtorrent-rasterbar', - url = 'http://libtorrent.org', - platforms = [platform.system() + '-' + platform.machine()], - license = 'BSD', - packages = packages, - ext_modules = ext -) - +os.chdir('bindings/python') +execfile('setup.py')