Build system support for numpy on ms-windows
authorCampbell Barton <ideasman42@gmail.com>
Tue, 4 Mar 2014 13:20:11 +0000 (00:20 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 4 Mar 2014 13:22:51 +0000 (00:22 +1100)
CMakeLists.txt
build_files/scons/tools/Blender.py
source/creator/CMakeLists.txt

index 3e7ac95f98545a41a33a2da88a3f298d71b629d5..46690f3a5b75e9120f5d0904077e7ada2f4c3988 100644 (file)
@@ -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))
index cc60b88b0358acb780b9289154b5965d7e796856..2015bb4c8a52d09e2fff08b971c6c680063ef6fd 100644 (file)
@@ -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)
index 4d12040df21642793557ae27e23d02f48f13ac9c..d765c33db7059784182064b4dd83210b045d1f90 100644 (file)
@@ -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()