Initial support for numpy in scons
authorSergey Sharybin <sergey.vfx@gmail.com>
Fri, 27 Jul 2012 16:01:33 +0000 (16:01 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 27 Jul 2012 16:01:33 +0000 (16:01 +0000)
Assumes numpy is installed to the BF_PYTHON/site-packages/numpy directory,
could be tweaked further, but this should be enough to setup release
building environment.

Seems blender can't import numpy, but that doesn't seem to be scons issue,
the same happens here with cmake too. Would ask Campbell to help looking
into this.

build_files/scons/tools/Blender.py
build_files/scons/tools/btools.py

index 0c5d37f77fed03823efcf1bb89251749e1e4ec83..e07c0d6f0de56369e105dfc7120293ff488e2e00 100644 (file)
@@ -693,11 +693,23 @@ def UnixPyBundle(target=None, source=None, env=None):
     run("rm -r '%s/turtle.py'" % py_target)
     run("rm -f '%s/lib-dynload/_tkinter.so'" % py_target)
 
+    if env['WITH_BF_PYTHON_INSTALL_NUMPY']:
+        numpy_src = py_src + "/site-packages/numpy"
+        numpy_target = py_target + "/site-packages/numpy"
+
+        if os.path.exists(numpy_src):
+            print 'Install numpy from:'
+            print '\t"%s" into...' % numpy_src
+            print '\t"%s"\n' % numpy_target
+
+            run("cp -R '%s' '%s'" % (numpy_src, os.path.dirname(numpy_target)))
+        else:
+            print 'Failed to find numpy at %s, skipping copying' % numpy_src
+
     run("find '%s' -type d -name 'test' -prune -exec rm -rf {} ';'" % py_target)
     run("find '%s' -type d -name '__pycache__' -exec rm -rf {} ';'" % py_target)
     run("find '%s' -name '*.py[co]' -exec rm -rf {} ';'" % py_target)
     run("find '%s' -name '*.so' -exec strip -s {} ';'" % py_target)
-    
 
 #### END ACTION STUFF #########
 
index af484ed382e17e3847ba4750c7a196f6e93aae05..e08a013d081b148ea042c4800a5825c7eabc9f79 100644 (file)
@@ -135,7 +135,7 @@ def validate_arguments(args, bc):
             'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC',
             'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
             'WITHOUT_BF_INSTALL',
-            'WITHOUT_BF_PYTHON_INSTALL', 'WITHOUT_BF_PYTHON_UNPACK',
+            'WITHOUT_BF_PYTHON_INSTALL', 'WITHOUT_BF_PYTHON_UNPACK', 'WITH_BF_PYTHON_INSTALL_NUMPY'
             'WITHOUT_BF_OVERWRITE_INSTALL',
             'WITH_BF_OPENMP', 'BF_OPENMP', 'BF_OPENMP_LIBPATH',
             'WITH_GHOST_COCOA',
@@ -520,6 +520,7 @@ def read_opts(env, cfg, args):
         (BoolVariable('BF_SPLIT_SRC', 'Split src lib into several chunks if true', False)),
         (BoolVariable('WITHOUT_BF_INSTALL', 'dont install if true', False)),
         (BoolVariable('WITHOUT_BF_PYTHON_INSTALL', 'dont install Python modules if true', False)),
+        (BoolVariable('WITH_BF_PYTHON_INSTALL_NUMPY', 'install Python mumpy module', False)),
         (BoolVariable('WITHOUT_BF_PYTHON_UNPACK', 'dont remove and unpack Python modules everytime if true', False)),
         (BoolVariable('WITHOUT_BF_OVERWRITE_INSTALL', 'dont remove existing files before breating the new install directory (set to False when making packages for others)', False)),
         (BoolVariable('BF_FANCY', 'Enable fancy output if true', True)),