Installdeps: better handling of python versions.

now that we stick to some outdated py version, some distro (like current
debian testing) will feature several python3 dev package, but other
dependant libs like numpy are only built against current default version
of python (3.8 now in deb testing)...

In order to be able to use distro packages we need to allow using higher
versions of python, and set relevant CMake option accordingly.
This commit is contained in:
Bastien Montagne 2020-06-08 15:38:11 +02:00
parent 1c189aa70a
commit e3396d8bfc
Notes: blender-bot 2023-02-14 07:40:56 +01:00
Referenced by commit 14bd92b12f, Installdeps: Fix broken commit rBe3396d8bfc94.
1 changed files with 19 additions and 9 deletions

View File

@ -378,6 +378,7 @@ CLANG_FORMAT_VERSION_MIN="6.0"
PYTHON_VERSION="3.7.4"
PYTHON_VERSION_MIN="3.7"
PYTHON_VERSION_INSTALLED=$PYTHON_VERSION_MIN
PYTHON_FORCE_BUILD=false
PYTHON_FORCE_REBUILD=false
PYTHON_SKIP=false
@ -3427,7 +3428,7 @@ compile_XR_OpenXR_SDK() {
# Install on DEB-like
get_package_version_DEB() {
dpkg-query -W -f '${Version}' $1 | sed -r 's/([0-9]+:)?(([0-9]+\.?)+([0-9]+)).*/\2/'
dpkg-query -W -f '${Version}' $1 | sed -r 's/([0-9]+:)?(([0-9]+\.?){$2}([0-9]+)).*/\2/'
}
check_package_DEB() {
@ -3630,7 +3631,7 @@ install_DEB() {
# Check cmake/glew versions and disable features for older distros.
# This is so Blender can at least compile.
PRINT ""
_cmake=`get_package_version_DEB cmake`
_cmake=`get_package_version_DEB cmake 3`
version_ge $_cmake "2.8.10"
if [ $? -eq 1 ]; then
version_ge $_cmake "2.8.8"
@ -3645,7 +3646,7 @@ install_DEB() {
fi
PRINT ""
_glew=`get_package_version_DEB libglew-dev`
_glew=`get_package_version_DEB libglew-dev 3`
if [ -z $_glew ]; then
# Stupid virtual package in Ubuntu 12.04 doesn't show version number...
_glew=`apt-cache showpkg libglew-dev|tail -n1|awk '{print $2}'|sed 's/-.*//'`
@ -3674,9 +3675,12 @@ install_DEB() {
INFO "Forced Python/NumPy building, as requested..."
_do_compile_python=true
else
check_package_DEB python$PYTHON_VERSION_MIN-dev
check_package_version_ge_DEB python3-dev $PYTHON_VERSION_MIN
if [ $? -eq 0 ]; then
install_packages_DEB python$PYTHON_VERSION_MIN-dev
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_DEB python3-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
PRINT $(echo `get_package_version_DEB python3-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
install_packages_DEB python3-dev
clean_Python
PRINT ""
if [ "$NUMPY_SKIP" = true ]; then
@ -4296,8 +4300,11 @@ install_RPM() {
INFO "Forced Python/NumPy building, as requested..."
_do_compile_python=true
else
check_package_version_match_RPM python3-devel $PYTHON_VERSION_MIN
check_package_version_ge_RPM python3-devel $PYTHON_VERSION_MIN
if [ $? -eq 0 ]; then
get_package_version_RPM python3-devel
PYTHON_VERSION_INSTALLED=`echo $? | sed -r 's/([0-9]+:)?(([0-9]+\.?)?([0-9]+)).*/\2/'`
install_packages_RPM python3-devel
clean_Python
PRINT ""
@ -4821,6 +4828,9 @@ install_ARCH() {
else
check_package_version_ge_ARCH python $PYTHON_VERSION_MIN
if [ $? -eq 0 ]; then
get_package_version_ARCH python
PYTHON_VERSION_INSTALLED=`echo $? | sed -r 's/([0-9]+:)?(([0-9]+\.?)?([0-9]+)).*/\2/'`
install_packages_ARCH python
clean_Python
PRINT ""
@ -5411,11 +5421,11 @@ print_info() {
PRINT " $_1"
_buildargs="$_buildargs $_1"
_1="-D PYTHON_VERSION=$PYTHON_VERSION_MIN"
_1="-D PYTHON_VERSION=$PYTHON_VERSION_INSTALLED"
PRINT " $_1"
_buildargs="$_buildargs $_1"
if [ -d "$INST/python-$PYTHON_VERSION_MIN" ]; then
_1="-D PYTHON_ROOT_DIR=$INST/python-$PYTHON_VERSION_MIN"
if [ -d "$INST/python-$PYTHON_VERSION_INSTALLED" ]; then
_1="-D PYTHON_ROOT_DIR=$INST/python-$PYTHON_VERSION_INSTALLED"
PRINT " $_1"
_buildargs="$_buildargs $_1"
fi