diff --git a/3rdparty/ext_python/CMakeLists.txt b/3rdparty/ext_python/CMakeLists.txt new file mode 100644 index 0000000000..6f50dc49ed --- /dev/null +++ b/3rdparty/ext_python/CMakeLists.txt @@ -0,0 +1,76 @@ +SET(PREFIX_ext_python "${EXTPREFIX}" ) +if (UNIX) + if (APPLE) + set(PYTHON_VERSION "3.8") + ExternalProject_Add( ext_python + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz + URL_MD5 b3fb85fd479c0bf950c626ef80cacb57 + + PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/osx_fixappinstall.diff + + CONFIGURE_COMMAND /configure MACOSX_DEPLOYMENT_TARGET=10.13 --prefix=${PREFIX_ext_python} ${GLOBAL_AUTOMAKE_PROFILE} + --without-ensurepip --enable-framework=${PREFIX_ext_python}/lib --enable-optimizations + BUILD_COMMAND make + INSTALL_COMMAND make install + COMMAND ${CMAKE_COMMAND} -E copy ${PREFIX_ext_python}/bin/python3 ${PREFIX_ext_python}/bin/python + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/sitecustomize.py ${PREFIX_ext_python}/lib/Python.framework/Versions/Current/lib/python${PYTHON_VERSION}/ + COMMAND ${CMAKE_COMMAND} -E create_symlink ./lib/python${PYTHON_VERSION}/site-packages ${PREFIX_ext_python}/lib/Python.framework/Versions/Current/site-packages + # CMake FindPythonLib can't find framework libraries, lack of maintainer for Python + COMMAND find ${PREFIX_ext_python}/lib/Python.framework/Versions/Current/lib -type l -d 1 + | grep -o "[^/]*$" + | xargs -I FILE ${CMAKE_COMMAND} -E create_symlink ./Python.framework/Python ${PREFIX_ext_python}/lib/FILE + + UPDATE_COMMAND "" + ALWAYS 0 + ) + else() + + ExternalProject_Add( ext_python + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz + URL_MD5 b3fb85fd479c0bf950c626ef80cacb57 + + CONFIGURE_COMMAND /configure --prefix=${PREFIX_ext_python} ${GLOBAL_AUTOMAKE_PROFILE} --enable-shared + BUILD_COMMAND make + INSTALL_COMMAND make install + COMMAND ${CMAKE_COMMAND} -E copy ${PREFIX_ext_python}/bin/python3 ${PREFIX_ext_python}/bin/python + + UPDATE_COMMAND "" + ALWAYS 0 + ) + endif() +elseif(MINGW) + if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + ExternalProject_Add( ext_python + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL https://www.python.org/ftp/python/3.8.1/python-3.8.1-embed-amd64.zip + URL_MD5 4d091857a2153d9406bb5c522b211061 + + INSTALL_DIR ${PREFIX_ext_python} + CONFIGURE_COMMAND "" + BUILD_COMMAND ${CMAKE_COMMAND} -E echo deploying python3 64-bit binary + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory / ${PREFIX_ext_python}/python + COMMAND ${CMAKE_COMMAND} -E copy /python3.dll ${PREFIX_ext_python}/bin + COMMAND ${CMAKE_COMMAND} -E copy /python38.dll ${PREFIX_ext_python}/bin + COMMAND ${CMAKE_COMMAND} -E copy /vcruntime140.dll ${PREFIX_ext_python}/bin + UPDATE_COMMAND "" + ) + else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + ExternalProject_Add( ext_python + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL https://www.python.org/ftp/python/3.8.1/python-3.8.1-embed-win32.zip + URL_MD5 980d5745a7e525be5abf4b443a00f734 + + INSTALL_DIR ${PREFIX_ext_python} + CONFIGURE_COMMAND "" + BUILD_COMMAND ${CMAKE_COMMAND} -E echo deploying python3 32-bit binary + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory / ${PREFIX_ext_python}/python + COMMAND ${CMAKE_COMMAND} -E copy /python3.dll ${PREFIX_ext_python}/bin + COMMAND ${CMAKE_COMMAND} -E copy /python38.dll ${PREFIX_ext_python}/bin + COMMAND ${CMAKE_COMMAND} -E copy /vcruntime140.dll ${PREFIX_ext_python}/bin + UPDATE_COMMAND "" + ) + endif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + +endif()