diff --git a/aksetup_helper.py b/aksetup_helper.py index 9c6c1d39304aadf1aed0339bf8378711809f4882..88bdb9166ab9945dbd8edb1dcf935237919b0276 100644 --- a/aksetup_helper.py +++ b/aksetup_helper.py @@ -513,7 +513,7 @@ class BoostLibraries(Libraries): help="Library names for Boost C++ %s library (without lib or .so)" % humanize(lib_base_name)) -def set_up_shipped_boost_if_requested(conf): +def set_up_shipped_boost_if_requested(project_name, conf): """Set up the package to use a shipped version of Boost. Return a tuple of a list of extra C files to build and extra @@ -558,7 +558,6 @@ def set_up_shipped_boost_if_requested(conf): source_files = [f for f in source_files if not f.startswith("bpl-subset/bpl_subset/libs/thread/src")] - import sys if sys.platform == "win32": source_files += glob( "bpl-subset/bpl_subset/libs/thread/src/win32/*.cpp") @@ -566,10 +565,25 @@ def set_up_shipped_boost_if_requested(conf): source_files += glob( "bpl-subset/bpl_subset/libs/thread/src/pthread/*.cpp") + from os.path import isdir + main_boost_inc = "bpl-subset/bpl_subset/boost" + bpl_project_boost_inc = "bpl-subset/bpl_subset/%sboost" % project_name + + if not isdir(bpl_project_boost_inc): + try: + from os import symlink + except ImportError: + from shutil import copytree + print "Copying files, hang on... (do not interrupt)" + copytree(main_boost_inc, bpl_project_boost_inc) + else: + symlink("boost", bpl_project_boost_inc) + return (source_files, { "BOOST_MULTI_INDEX_DISABLE_SERIALIZATION": 1, "BOOST_PYTHON_SOURCE": 1, + "boost": '%sboost' % project_name } ) else: diff --git a/bpl-subset b/bpl-subset index 85bf4439e019df899a2a659fff529b11ea37270d..fa93a1f93a811c6130eb34b10eb9e8c25667d2b5 160000 --- a/bpl-subset +++ b/bpl-subset @@ -1 +1 @@ -Subproject commit 85bf4439e019df899a2a659fff529b11ea37270d +Subproject commit fa93a1f93a811c6130eb34b10eb9e8c25667d2b5 diff --git a/setup.py b/setup.py index 4deffa9597b9bb03389165cf8082076115977c9f..a514ceb65c2b4a718989e16c64669ffdcecefc7a 100644 --- a/setup.py +++ b/setup.py @@ -52,7 +52,7 @@ def main(): hack_distutils() conf = get_config(get_config_schema(), warn_about_no_config=False) - EXTRA_OBJECTS, EXTRA_DEFINES = set_up_shipped_boost_if_requested(conf) + EXTRA_OBJECTS, EXTRA_DEFINES = set_up_shipped_boost_if_requested("pyopencl", conf) LIBRARY_DIRS = conf["BOOST_LIB_DIR"] LIBRARIES = conf["BOOST_PYTHON_LIBNAME"]