WITH_PYTHON_INSTALL_NUMPY option for unix/cmake, just copies from site-packages.
authorCampbell Barton <ideasman42@gmail.com>
Mon, 30 Apr 2012 09:38:32 +0000 (09:38 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 30 Apr 2012 09:38:32 +0000 (09:38 +0000)
CMakeLists.txt
source/creator/CMakeLists.txt

index 16de9a4055e72c4e5e8a9effc509a98dbc5c1d6e..e8bdc5375fca46f344a59723082136ea8f0fb021 100644 (file)
@@ -228,6 +228,7 @@ if(UNIX AND NOT APPLE)
        option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON)
 endif()
 option(WITH_PYTHON_INSTALL       "Copy system python into the blender install folder" ON)
+option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder"  ON)
 option(WITH_MINGW64                   "Use the 64-bit version of MinGW" OFF)
 mark_as_advanced(WITH_MINGW64)
 
@@ -1612,6 +1613,13 @@ if(WITH_PYTHON)
                                                        "to a valid python include path. Containing "
                                                        "Python.h for python version \"${PYTHON_VERSION}\"")
        endif()
+
+       if(WITH_PYTHON_INSTALL_NUMPY)
+               if(NOT EXISTS "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/numpy")
+                       message(WARNING "Numpy path '${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/numpy' is missing, "
+                                                       "WITH_PYTHON_INSTALL_NUMPY option will be ignored when installing python")
+               endif()
+       endif()
 endif()
 
 
@@ -1668,7 +1676,7 @@ if(FIRST_RUN)
                _setting)
                set(_msg "   * ${_setting}")
                string(LENGTH "${_msg}" _len)
-               while("28" GREATER "${_len}")
+               while("32" GREATER "${_len}")
                        set(_msg "${_msg} ")
                         math(EXPR _len "${_len} + 1")
                endwhile()
@@ -1728,6 +1736,7 @@ if(FIRST_RUN)
 
        info_cfg_text("Python:")
        info_cfg_option(WITH_PYTHON_INSTALL)
+       info_cfg_option(WITH_PYTHON_INSTALL_NUMPY)
        info_cfg_option(WITH_PYTHON_MODULE)
        info_cfg_option(WITH_PYTHON_SAFETY)
 
index 0168c06b7dae69024514e42adae31290ae20a5e8..9168b634250dd2e98fb7e1c907d9e7f6431dbb81 100644 (file)
@@ -438,7 +438,28 @@ if(UNIX AND NOT APPLE)
 
                        # # doesnt work, todo
                        # install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
+                       
+                       if(WITH_PYTHON_INSTALL_NUMPY)
+                               install(
+                                       DIRECTORY ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/numpy
+                                       DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}/python${PYTHON_VERSION}/site-packages
+                                       PATTERN ".svn" EXCLUDE
+                                       PATTERN "__pycache__" EXCLUDE           # * any cache *
+                                       PATTERN "*.pyc" EXCLUDE                 # * any cache *
+                                       PATTERN "*.pyo" EXCLUDE                 # * any cache *
+                                       PATTERN "distutils" EXCLUDE             # ./distutils
+                                       PATTERN "oldnumeric" EXCLUDE            # ./oldnumeric
+                                       PATTERN "doc" EXCLUDE                   # ./doc
+                                       PATTERN "tests" EXCLUDE                 # ./tests
+                                       PATTERN "f2py" EXCLUDE                  # ./f2py - fortran/python interface code, not fun for blender devs.
+                                       PATTERN "include" EXCLUDE               # include dirs all over, we wont use NumPy/CAPI
+                                       PATTERN "*.h" EXCLUDE                   # some includes are not in include dirs
+                                       PATTERN "*.a" EXCLUDE                   # ./core/lib/libnpymath.a - for linking, we dont need.
+                               )
+                       endif()
+                       
                        unset(_target_LIB)
+                       
                endif()
        endif()
 elseif(WIN32)