From c436c78de1d2f6fcac46e69c5c81ca2af5f839e5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 5 Mar 2014 00:20:11 +1100 Subject: Build system support for numpy on ms-windows --- CMakeLists.txt | 4 +++- build_files/scons/tools/Blender.py | 18 ++++++++++++++++++ source/creator/CMakeLists.txt | 10 ++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e7ac95f985..46690f3a5b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2209,7 +2209,9 @@ if(WITH_PYTHON) "Python.h for python version \"${PYTHON_VERSION}\"") endif() - if(WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) + if(WIN32) + # pass, we have this in an archive to extract + elseif(WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) # set but invalid # -- disabled until we make numpy bundled with blender - campbell if((NOT ${PYTHON_NUMPY_PATH} STREQUAL "") AND (NOT ${PYTHON_NUMPY_PATH} MATCHES NOTFOUND)) diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py index cc60b88b035..2015bb4c8a5 100644 --- a/build_files/scons/tools/Blender.py +++ b/build_files/scons/tools/Blender.py @@ -626,6 +626,24 @@ def WinPyBundle(target=None, source=None, env=None): print "Unpacking '" + py_tar + "' to '" + py_target + "'" untar_pybundle(py_tar,py_target,exclude_re) + # ------------- + # Extract Numpy + py_tar = env.subst(env['LCGDIR']) + if py_tar[0] == '#': + py_tar = py_tar[1:] + py_tar += '/release/python' + env['BF_PYTHON_VERSION'].replace('.','') + '_numpy_1.8.tar.gz' + + py_target = env.subst(env['BF_INSTALLDIR']) + if py_target[0] == '#': + py_target = py_target[1:] + py_target = os.path.join(py_target, VERSION, 'python', 'lib', 'site-packages') + # rmtree handled above + # files are cleaned up in their archive + exclude_re = [] + print("Unpacking '" + py_tar + "' to '" + py_target + "'") + untar_pybundle(py_tar, py_target, exclude_re) + + def my_appit_print(target, source, env): a = '%s' % (target[0]) d, f = os.path.split(a) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 4d12040df21..d765c33db70 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -576,6 +576,16 @@ elseif(WIN32) " ) + if(WITH_PYTHON_INSTALL_NUMPY) + install( + CODE + " + execute_process(COMMAND \"${CMAKE_COMMAND}\" -E chdir \"${TARGETDIR_VER}/python/lib/site-packages\" + \"${CMAKE_COMMAND}\" -E tar xzfv \"${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}_numpy_1.8.tar.gz\") + " + ) + endif() + # doesnt work, todo # install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')") endif() -- cgit v1.2.3