mirror of https://github.com/GNOME/gimp.git
Re-enable Python in the build, but requiring Python >3.6.0 since...
... we'll need that for gobject introspection Edit by Jehan: don't actually re-enable pygimp, only do bring back the Python 3 configure search.
This commit is contained in:
parent
6b442a1ba3
commit
872aa50c56
|
@ -5,4 +5,4 @@ m4_include([m4macros/ax_gcc_func_attribute.m4])
|
|||
m4_include([m4macros/ax_prog_cc_for_build.m4])
|
||||
m4_include([m4macros/ax_prog_perl_version.m4])
|
||||
m4_include([m4macros/detectcflags.m4])
|
||||
m4_include([m4macros/pythondev.m4])
|
||||
m4_include([m4macros/python3dev.m4])
|
||||
|
|
41
configure.ac
41
configure.ac
|
@ -82,7 +82,8 @@ m4_define([poppler_required_version], [0.69.0])
|
|||
m4_define([poppler_data_required_version], [0.4.9])
|
||||
m4_define([pycairo_required_version], [1.0.2])
|
||||
m4_define([pygtk_required_version], [2.10.4])
|
||||
m4_define([python2_required_version], [2.5.0])
|
||||
# m4_define([python2_required_version], [2.5.0])
|
||||
m4_define([python3_required_version], [3.6.0])
|
||||
m4_define([rsvg_required_version], [2.40.6])
|
||||
m4_define([webkitgtk_required_version], [2.20.3])
|
||||
m4_define([webp_required_version], [0.6.0])
|
||||
|
@ -180,7 +181,8 @@ PANGOCAIRO_REQUIRED_VERSION=pangocairo_required_version
|
|||
PERL_REQUIRED_VERSION=perl_required_version
|
||||
POPPLER_REQUIRED_VERSION=poppler_required_version
|
||||
POPPLER_DATA_REQUIRED_VERSION=poppler_data_required_version
|
||||
PYTHON2_REQUIRED_VERSION=python2_required_version
|
||||
# PYTHON2_REQUIRED_VERSION=python2_required_version
|
||||
PYTHON3_REQUIRED_VERSION=python3_required_version
|
||||
RSVG_REQUIRED_VERSION=rsvg_required_version
|
||||
WEBKITGTK_REQUIRED_VERSION=webkitgtk_required_version
|
||||
WEBP_REQUIRED_VERSION=webp_required_version
|
||||
|
@ -213,7 +215,8 @@ AC_SUBST(PANGOCAIRO_REQUIRED_VERSION)
|
|||
AC_SUBST(PERL_REQUIRED_VERSION)
|
||||
AC_SUBST(POPPLER_REQUIRED_VERSION)
|
||||
AC_SUBST(POPPLER_DATA_REQUIRED_VERSION)
|
||||
AC_SUBST(PYTHON2_REQUIRED_VERSION)
|
||||
AC_SUBST(PYTHON3_REQUIRED_VERSION)
|
||||
# AC_SUBST(PYTHON2_REQUIRED_VERSION)
|
||||
AC_SUBST(RSVG_REQUIRED_VERSION)
|
||||
AC_SUBST(WEBKITGTK_REQUIRED_VERSION)
|
||||
AC_SUBST(WEBP_REQUIRED_VERSION)
|
||||
|
@ -2258,9 +2261,9 @@ m4_define([pycheck_error], [
|
|||
if test "x$enable_python" != xno; then
|
||||
enable_python="yes"
|
||||
# check for Python
|
||||
AM_PATH_PYTHON2(python2_required_version,,
|
||||
[pycheck_error([Python 2 (python2_required_version or newer)], [it])])
|
||||
AM_CHECK_PYTHON_HEADERS(, [pycheck_error([Python 2 headers], [them])])
|
||||
AM_PATH_PYTHON(python3_required_version,,
|
||||
[pycheck_error([Python 3 (python3_required_version or newer)], [it])])
|
||||
AM_CHECK_PYTHON_HEADERS(, [pycheck_error([Python 3 headers], [them])])
|
||||
|
||||
# Win32 needs all symbols resolved for linking, even for DLLs
|
||||
# Assume the link library is in $exec_prefix/libs
|
||||
|
@ -2279,19 +2282,21 @@ if test "x$enable_python" != xno; then
|
|||
AC_SUBST(PYLINK_LIBS)
|
||||
AC_SUBST(PYBIN_PATH)
|
||||
|
||||
# check for PyGTK
|
||||
PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version,,
|
||||
[pycheck_error([PyGTK pygtk_required_version or newer], [it])])
|
||||
# # check for PyGTK
|
||||
# PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version,,
|
||||
# [pycheck_error([PyGTK pygtk_required_version or newer], [it])])
|
||||
|
||||
AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
|
||||
if test "x$PYGTK_CODEGEN" = xno; then
|
||||
pycheck_error([pygtk-codegen-2.0 script], [it])
|
||||
fi
|
||||
# AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
|
||||
# if test "x$PYGTK_CODEGEN" = xno; then
|
||||
# pycheck_error([pygtk-codegen-2.0 script], [it])
|
||||
# fi
|
||||
|
||||
AC_MSG_CHECKING(for pygtk defs)
|
||||
PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
|
||||
AC_SUBST(PYGTK_DEFSDIR)
|
||||
AC_MSG_RESULT($PYGTK_DEFSDIR)
|
||||
# AC_MSG_CHECKING(for pygtk defs)
|
||||
# PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
|
||||
# AC_SUBST(PYGTK_DEFSDIR)
|
||||
# AC_MSG_RESULT($PYGTK_DEFSDIR)
|
||||
|
||||
# XXX Check here for something related to Python gobject-introspection & GTK3
|
||||
|
||||
PKG_CHECK_MODULES(PYCAIRO, pycairo >= pycairo_required_version,,
|
||||
[pycheck_error([PyCairo pycairo_required_version or newer], [it])])
|
||||
|
@ -3032,7 +3037,7 @@ Optional Plug-Ins:
|
|||
Heif >= 1.4.0: $have_libheif_1_4_0
|
||||
PDF (export): $have_cairo_pdf
|
||||
Print: $enable_print
|
||||
Python 2: $enable_python
|
||||
Python 3: $enable_python
|
||||
TWAIN (Win32): $os_win32
|
||||
Webpage: $have_webkit
|
||||
WMF: $have_libwmf
|
||||
|
|
|
@ -0,0 +1,248 @@
|
|||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009,
|
||||
# 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PATH_PYTHON2([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
# ---------------------------------------------------------------------------
|
||||
# Adds support for distributing Python modules and packages. To
|
||||
# install modules, copy them to $(pythondir), using the python_PYTHON
|
||||
# automake variable. To install a package with the same name as the
|
||||
# automake package, install to $(pkgpythondir), or use the
|
||||
# pkgpython_PYTHON automake variable.
|
||||
#
|
||||
# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
|
||||
# locations to install python extension modules (shared libraries).
|
||||
# Another macro is required to find the appropriate flags to compile
|
||||
# extension modules.
|
||||
#
|
||||
# If your package is configured with a different prefix to python,
|
||||
# users will have to add the install directory to the PYTHONPATH
|
||||
# environment variable, or create a .pth file (see the python
|
||||
# documentation for details).
|
||||
#
|
||||
# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON2 will
|
||||
# cause an error if the version of python installed on the system
|
||||
# doesn't meet the requirement. MINIMUM-VERSION should consist of
|
||||
# numbers and dots only.
|
||||
#
|
||||
# AM_PATH_PYTHON3 is based on AM_PATH_PYTHON but will search only
|
||||
# Python 3 locations.
|
||||
AC_DEFUN([AM_PATH_PYTHON3],
|
||||
[
|
||||
dnl Find a Python3 interpreter.
|
||||
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
|
||||
[python3 python])
|
||||
|
||||
AC_ARG_VAR([PYTHON], [the Python interpreter])
|
||||
|
||||
m4_if([$1],[],[
|
||||
dnl No version check is needed.
|
||||
# Find any Python interpreter.
|
||||
if test -z "$PYTHON"; then
|
||||
AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
|
||||
fi
|
||||
am_display_PYTHON=python
|
||||
], [
|
||||
dnl A version check is needed.
|
||||
if test -n "$PYTHON"; then
|
||||
# If the user set $PYTHON, use it and don't search something else.
|
||||
AC_MSG_CHECKING([whether $PYTHON version >= $1])
|
||||
AM_PYTHON3_CHECK_VERSION([$PYTHON], [$1],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_ERROR(too old)])
|
||||
am_display_PYTHON=$PYTHON
|
||||
else
|
||||
# Otherwise, try each interpreter until we find one that satisfies
|
||||
# VERSION.
|
||||
AC_CACHE_CHECK([for a Python 3 interpreter with version >= $1],
|
||||
[am_cv_pathless_PYTHON],[
|
||||
for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
|
||||
test "$am_cv_pathless_PYTHON" = none && break
|
||||
AM_PYTHON3_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
|
||||
done])
|
||||
# Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
|
||||
if test "$am_cv_pathless_PYTHON" = none; then
|
||||
PYTHON=:
|
||||
else
|
||||
AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
|
||||
fi
|
||||
am_display_PYTHON=$am_cv_pathless_PYTHON
|
||||
fi
|
||||
])
|
||||
|
||||
if test "$PYTHON" = :; then
|
||||
dnl Run any user-specified action, or abort.
|
||||
m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
|
||||
else
|
||||
|
||||
dnl Query Python for its version number. Getting [:3] seems to be
|
||||
dnl the best way to do this; it's what "site.py" does in the standard
|
||||
dnl library.
|
||||
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
|
||||
[am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
|
||||
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
|
||||
|
||||
dnl Use the values of $prefix and $exec_prefix for the corresponding
|
||||
dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
|
||||
dnl distinct variables so they can be overridden if need be. However,
|
||||
dnl general consensus is that you shouldn't need this ability.
|
||||
|
||||
AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
|
||||
AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
|
||||
|
||||
dnl At times (like when building shared libraries) you may want
|
||||
dnl to know which OS platform Python thinks this is.
|
||||
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
|
||||
[am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
|
||||
AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
|
||||
|
||||
|
||||
dnl Set up 4 directories:
|
||||
|
||||
dnl pythondir -- where to install python scripts. This is the
|
||||
dnl site-packages directory, not the python standard library
|
||||
dnl directory like in previous automake betas. This behavior
|
||||
dnl is more consistent with lispdir.m4 for example.
|
||||
dnl Query distutils for this directory.
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON script directory],
|
||||
[am_cv_python_pythondir],
|
||||
[if test "x$prefix" = xNONE
|
||||
then
|
||||
am_py_prefix=$ac_default_prefix
|
||||
else
|
||||
am_py_prefix=$prefix
|
||||
fi
|
||||
am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null`
|
||||
case $am_cv_python_pythondir in
|
||||
$am_py_prefix*)
|
||||
am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
|
||||
am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
|
||||
;;
|
||||
*)
|
||||
case $am_py_prefix in
|
||||
/usr|/System*) ;;
|
||||
*)
|
||||
am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
])
|
||||
AC_SUBST([pythondir], [$am_cv_python_pythondir])
|
||||
|
||||
dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
|
||||
dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
|
||||
dnl more consistent with the rest of automake.
|
||||
|
||||
AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
|
||||
|
||||
dnl pyexecdir -- directory for installing python extension modules
|
||||
dnl (shared libraries)
|
||||
dnl Query distutils for this directory.
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
|
||||
[am_cv_python_pyexecdir],
|
||||
[if test "x$exec_prefix" = xNONE
|
||||
then
|
||||
am_py_exec_prefix=$am_py_prefix
|
||||
else
|
||||
am_py_exec_prefix=$exec_prefix
|
||||
fi
|
||||
am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null`
|
||||
case $am_cv_python_pyexecdir in
|
||||
$am_py_exec_prefix*)
|
||||
am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
|
||||
am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
|
||||
;;
|
||||
*)
|
||||
case $am_py_exec_prefix in
|
||||
/usr|/System*) ;;
|
||||
*)
|
||||
am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
])
|
||||
AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
|
||||
|
||||
dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
|
||||
|
||||
AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
|
||||
|
||||
dnl Run any user-specified action.
|
||||
$2
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
|
||||
# AM_PYTHON3_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
|
||||
# ---------------------------------------------------------------------------
|
||||
# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION
|
||||
# and version == 3.
|
||||
# Run ACTION-IF-FALSE otherwise.
|
||||
# This test uses sys.hexversion instead of the string equivalent (first
|
||||
# word of sys.version), in order to cope with versions such as 2.2c1.
|
||||
# This supports Python 3.0 or higher.
|
||||
#
|
||||
# Based on AM_PYTHON_CHECK_VERSION but for Python 3 only.
|
||||
AC_DEFUN([AM_PYTHON3_CHECK_VERSION],
|
||||
[prog="import sys
|
||||
# split strings by '.' and convert to numeric. Append some zeros
|
||||
# because we need at least 4 digits for the hex conversion.
|
||||
# map returns an iterator in Python 3.0 and a list in 2.x
|
||||
# minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
|
||||
minver = list(map(int, '$2'.split('.')))
|
||||
minverhex = 0
|
||||
# xrange is not present in Python 3.0 and range returns an iterator.
|
||||
# python2dev had minver[[i]] but that raises
|
||||
# TypeError: list indices must be integers or slices, not list
|
||||
# for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
|
||||
for v in minver: minverhex = (minverhex << 8) + v
|
||||
# sys.version_info.major only available since Python 2.7.
|
||||
# use sys.version_info[0] instead.
|
||||
# Double the square brackets for M4 syntax.
|
||||
# sys.exit(sys.version_info[[0]] != 3 or sys.hexversion < minverhex)"
|
||||
sys.exit(sys.version_info[[0]] != 3 or (sys.hexversion >> 8) < minverhex)"
|
||||
AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
|
||||
|
||||
|
||||
|
||||
## Find the install dirs for the python installation.
|
||||
## By James Henstridge
|
||||
|
||||
dnl a macro to check for ability to create python extensions
|
||||
dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
|
||||
dnl function also defines PYTHON_INCLUDES
|
||||
AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
|
||||
[AC_REQUIRE([AM_PATH_PYTHON3])
|
||||
AC_MSG_CHECKING(for headers required to compile python extensions)
|
||||
dnl Win32 doesn't have a versioned directory for headers
|
||||
if test "$PYTHON_PLATFORM" != "win32"; then
|
||||
py_versiondir="/python${PYTHON_VERSION}"
|
||||
else
|
||||
py_versiondir=
|
||||
fi
|
||||
dnl deduce PYTHON_INCLUDES
|
||||
py_prefix=`$PYTHON -c "import sys; print(sys.prefix)"`
|
||||
py_exec_prefix=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
|
||||
PYTHON_INCLUDES="-I${py_prefix}/include${py_versiondir}"
|
||||
if test "$py_prefix" != "$py_exec_prefix"; then
|
||||
PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include${py_versiondir}"
|
||||
fi
|
||||
AC_SUBST(PYTHON_INCLUDES)
|
||||
dnl check if the headers exist:
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
|
||||
AC_TRY_CPP([#include <Python.h>],dnl
|
||||
[AC_MSG_RESULT(found)
|
||||
$1],dnl
|
||||
[AC_MSG_RESULT(not found)
|
||||
$2])
|
||||
CPPFLAGS="$save_CPPFLAGS"
|
||||
])
|
Loading…
Reference in New Issue