macOS build: simplify python install for new 10.9 libraries.
We stop using the .zip file and just have all files now in lib/darwin/python/lib, along with numpy, numpy headers and requests. This makes it consistent with Linux and simplifies code. For old libraries the .zip stays, code for that gets removed when we fully switch to new libraries.
This commit is contained in:
@@ -208,7 +208,9 @@ function(harvest from to)
|
|||||||
FILES_MATCHING PATTERN ${pattern}
|
FILES_MATCHING PATTERN ${pattern}
|
||||||
PATTERN "pkgconfig" EXCLUDE
|
PATTERN "pkgconfig" EXCLUDE
|
||||||
PATTERN "cmake" EXCLUDE
|
PATTERN "cmake" EXCLUDE
|
||||||
PATTERN "clang" EXCLUDE)
|
PATTERN "clang" EXCLUDE
|
||||||
|
PATTERN "__pycache__" EXCLUDE
|
||||||
|
PATTERN "tests" EXCLUDE)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
@@ -267,17 +269,7 @@ harvest(png/include png/include "*.h")
|
|||||||
harvest(png/lib png/lib "*.a")
|
harvest(png/lib png/lib "*.a")
|
||||||
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}m")
|
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}m")
|
||||||
harvest(python/include python/include "*h")
|
harvest(python/include python/include "*h")
|
||||||
if(UNIX AND NOT APPLE)
|
harvest(python/lib python/lib "*")
|
||||||
harvest(python/lib/libpython${PYTHON_SHORT_VERSION}m.a python/lib/libpython${PYTHON_SHORT_VERSION}m.a)
|
|
||||||
harvest(python/lib/python${PYTHON_SHORT_VERSION} python/lib/python${PYTHON_SHORT_VERSION} "*")
|
|
||||||
harvest(requests python/lib/python${PYTHON_SHORT_VERSION}/site-packages/requests "*")
|
|
||||||
harvest(numpy python/lib/python${PYTHON_SHORT_VERSION}/site-packages/numpy "*")
|
|
||||||
else()
|
|
||||||
harvest(python/lib/libpython${PYTHON_SHORT_VERSION}m.a python/lib/python${PYTHON_SHORT_VERSION}/libpython${PYTHON_SHORT_VERSION}m.a)
|
|
||||||
harvest(python/release release "*")
|
|
||||||
harvest(requests release/site-packages/requests "*")
|
|
||||||
harvest(numpy release/site-packages/numpy "*")
|
|
||||||
endif()
|
|
||||||
harvest(schroedinger/lib/libschroedinger-1.0.a ffmpeg/lib/libschroedinger.a)
|
harvest(schroedinger/lib/libschroedinger-1.0.a ffmpeg/lib/libschroedinger.a)
|
||||||
harvest(sdl/include/SDL2 sdl/include "*.h")
|
harvest(sdl/include/SDL2 sdl/include "*.h")
|
||||||
harvest(sdl/lib sdl/lib "libSDL2.a")
|
harvest(sdl/lib sdl/lib "libSDL2.a")
|
||||||
|
@@ -37,9 +37,7 @@ if(WIN32)
|
|||||||
${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python35_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "."
|
${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python35_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "."
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(NUMPY_INSTALL
|
set(NUMPY_INSTALL echo .)
|
||||||
${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-3.5/numpy/" "${LIBDIR}/numpy/"
|
|
||||||
)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_numpy
|
ExternalProject_Add(external_numpy
|
||||||
|
@@ -82,13 +82,7 @@ else()
|
|||||||
INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make install
|
INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/python)
|
INSTALL_DIR ${LIBDIR}/python)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_target(Make_Python_Environment ALL DEPENDS external_python)
|
||||||
OUTPUT ${LIBDIR}/python/release/python_x86_64.zip
|
|
||||||
WORKING_DIRECTORY ${LIBDIR}/python
|
|
||||||
COMMAND mkdir -p release
|
|
||||||
COMMAND zip -r release/python_x86_64.zip lib/python${PYTHON_SHORT_VERSION} lib/pkgconfig --exclude *__pycache__*)
|
|
||||||
add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python/release/python_x86_64.zip)
|
|
||||||
add_custom_target(Make_Python_Environment ALL DEPENDS Package_Python)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
@@ -17,6 +17,12 @@
|
|||||||
# ***** END GPL LICENSE BLOCK *****
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
|
if(WIN32)
|
||||||
|
set(REQUESTS_INSTALL_DIR ${LIBDIR}/requests)
|
||||||
|
else()
|
||||||
|
set(REQUESTS_INSTALL_DIR ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION}/site-packages/requests)
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_requests
|
ExternalProject_Add(external_requests
|
||||||
URL ${REQUESTS_URI}
|
URL ${REQUESTS_URI}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
@@ -24,6 +30,8 @@ if(BUILD_MODE STREQUAL Release)
|
|||||||
PREFIX ${BUILD_DIR}/requests
|
PREFIX ${BUILD_DIR}/requests
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_COMMAND ""
|
BUILD_COMMAND ""
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/requests/src/external_requests/requests ${LIBDIR}/requests
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/requests/src/external_requests/requests ${REQUESTS_INSTALL_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_dependencies(external_requests Make_Python_Environment)
|
||||||
endif(BUILD_MODE STREQUAL Release)
|
endif(BUILD_MODE STREQUAL Release)
|
||||||
|
@@ -93,7 +93,11 @@ if(WITH_PYTHON)
|
|||||||
# normally cached but not since we include them with blender
|
# normally cached but not since we include them with blender
|
||||||
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
|
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
|
||||||
set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
|
set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
|
||||||
|
if(WITH_CXX11)
|
||||||
|
set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
|
||||||
|
else()
|
||||||
set(PYTHON_LIBRARY python${PYTHON_VERSION}m)
|
set(PYTHON_LIBRARY python${PYTHON_VERSION}m)
|
||||||
|
endif()
|
||||||
set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
|
set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
|
||||||
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
|
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
|
||||||
else()
|
else()
|
||||||
@@ -113,6 +117,9 @@ if(WITH_PYTHON)
|
|||||||
set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
|
set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
|
||||||
set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
|
set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
|
||||||
|
|
||||||
|
# needed for Audaspace, numpy is installed into python site-packages
|
||||||
|
set(NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include")
|
||||||
|
|
||||||
if(NOT EXISTS "${PYTHON_EXECUTABLE}")
|
if(NOT EXISTS "${PYTHON_EXECUTABLE}")
|
||||||
message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}")
|
message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}")
|
||||||
endif()
|
endif()
|
||||||
|
@@ -845,6 +845,13 @@ elseif(APPLE)
|
|||||||
PATTERN "__MACOSX" EXCLUDE
|
PATTERN "__MACOSX" EXCLUDE
|
||||||
PATTERN ".DS_Store" EXCLUDE
|
PATTERN ".DS_Store" EXCLUDE
|
||||||
PATTERN "config-${PYTHON_VERSION}m/*.a" EXCLUDE # static lib
|
PATTERN "config-${PYTHON_VERSION}m/*.a" EXCLUDE # static lib
|
||||||
|
PATTERN "lib2to3" EXCLUDE # ./lib2to3
|
||||||
|
PATTERN "tkinter" EXCLUDE # ./tkinter
|
||||||
|
PATTERN "lib-dynload/_tkinter.*" EXCLUDE # ./lib-dynload/_tkinter.co
|
||||||
|
PATTERN "idlelib" EXCLUDE # ./idlelib
|
||||||
|
PATTERN "test" EXCLUDE # ./test
|
||||||
|
PATTERN "turtledemo" EXCLUDE # ./turtledemo
|
||||||
|
PATTERN "turtle.py" EXCLUDE # ./turtle.py
|
||||||
)
|
)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
@@ -908,6 +915,13 @@ elseif(APPLE)
|
|||||||
|
|
||||||
# python
|
# python
|
||||||
if(WITH_PYTHON AND NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
|
if(WITH_PYTHON AND NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
|
||||||
|
if(WITH_CXX11)
|
||||||
|
# Copy the python libs into the install directory
|
||||||
|
install_dir(
|
||||||
|
${PYTHON_LIBPATH}
|
||||||
|
${TARGETDIR_VER}/python/lib
|
||||||
|
)
|
||||||
|
else()
|
||||||
# the python zip is first extracted as part of the build process,
|
# the python zip is first extracted as part of the build process,
|
||||||
# and then later installed as part of make install. this is much
|
# and then later installed as part of make install. this is much
|
||||||
# quicker, and means we can easily exclude files on copy
|
# quicker, and means we can easily exclude files on copy
|
||||||
@@ -943,6 +957,7 @@ elseif(APPLE)
|
|||||||
${LIBDIR}/release/site-packages
|
${LIBDIR}/release/site-packages
|
||||||
\${TARGETDIR_VER}/python/lib/python${PYTHON_VERSION}
|
\${TARGETDIR_VER}/python/lib/python${PYTHON_VERSION}
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
install(DIRECTORY ${LIBDIR}/python/bin
|
install(DIRECTORY ${LIBDIR}/python/bin
|
||||||
DESTINATION ${TARGETDIR_VER}/python
|
DESTINATION ${TARGETDIR_VER}/python
|
||||||
@@ -997,6 +1012,13 @@ elseif(APPLE)
|
|||||||
|
|
||||||
# python
|
# python
|
||||||
if(WITH_PYTHON AND NOT WITH_PYTHON_FRAMEWORK)
|
if(WITH_PYTHON AND NOT WITH_PYTHON_FRAMEWORK)
|
||||||
|
if(WITH_CXX11)
|
||||||
|
# Copy the python libs into the install directory
|
||||||
|
install_dir(
|
||||||
|
${PYTHON_LIBPATH}
|
||||||
|
${PLAYER_TARGETDIR_VER}/python/lib
|
||||||
|
)
|
||||||
|
else()
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${PYTHON_EXTRACT_DIR}
|
OUTPUT ${PYTHON_EXTRACT_DIR}
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_EXTRACT_DIR}/"
|
COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_EXTRACT_DIR}/"
|
||||||
@@ -1011,6 +1033,7 @@ elseif(APPLE)
|
|||||||
\${PLAYER_TARGETDIR_VER}
|
\${PLAYER_TARGETDIR_VER}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user