[gimp] configure: fix the Python checks.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] configure: fix the Python checks.
- Date: Tue, 6 Aug 2019 16:46:12 +0000 (UTC)
commit bfda31a67e2bd006d4dece02f19bb5c9ba550d8e
Author: Jehan <jehan girinstud io>
Date: Tue Aug 6 18:23:29 2019 +0200
configure: fix the Python checks.
1/ First I realize we were still using AM_PATH_PYTHON() and not
AM_PATH_PYTHON3().
2/ We don't need to check anymore for pygtk, pycairo, nor do we need
Python headers. Everything is now taken care of by GObject
Introspection and we have nothing else to build GIMP-side.
3/ Change --enable-python into --with-python. We don't actually build
anything now. There is no Python support to enable or disable
anymore. We simply install Python plug-ins or not. The 3 values are
"yes" (default, configure breaks if a Python 3 interpreter is not
found), "no" (Python plug-ins are not installed, not recommended) and
"force" (install Python plug-ins anyway even if an interpreter is not
found; this can be useful especially for cross-compilation since
Python is not useful at build-time anymore).
Note that --with-python=force, if an interpreter is not found, the
file `pygimp.interp` won't be installed. This is not a problem at all
if the interpreter can be found at runtime the standard way.
Otherwise packagers should add themselves a pygimp.interp file with
the known interpreter path.
configure.ac | 112 ++++++++++++++++++++++----------------------
plug-ins/python/Makefile.am | 2 +
2 files changed, 57 insertions(+), 57 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 2f054fe180..de3710e6cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,8 +80,6 @@ m4_define([pangocairo_required_version], [1.42.0])
m4_define([perl_required_version], [5.10.0])
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([python3_required_version], [3.6.0])
m4_define([rsvg_required_version], [2.40.6])
m4_define([webkitgtk_required_version], [2.20.3])
@@ -2243,66 +2241,66 @@ GOBJECT_INTROSPECTION_REQUIRE(introspection_required_version)
# Check for python
##################
-# Pygimp configure stuff ...
-AC_ARG_ENABLE(python,
- AS_HELP_STRING([--disable-python],
- [do not build the python extension]))
-
-m4_define([pycheck_error], [
- required_deps="$required_deps
- - $1
- *** Please install $2, or skip building the python scripting extension by
- *** passing --disable-python to configure (but then you will not be able
- *** to use scripts for GIMP that are written in Python)."
- enable_python="no"])
-
-if test "x$enable_python" != xno; then
- enable_python="yes"
- # check for Python
- 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
- # This might be able to be figured out from distutils, but it's
- # not documented so we won't rely on internal implementation
- PYLINK_LIBS=
+# By default, we want packagers to install Python plug-ins to get the
+# optimum experience. --with-python=yes will check for a Python 3
+# interpreter and fails without.
+# --with-python=force will install the plug-ins even though the Python
+# interpreter is not found at build time. It is up to the packager to
+# ensure one is available at run time. This can be useful in particular
+# when cross-compiling since anyway the interpreter is not useful at
+# build time.
+# --with-python=no won't install Python plug-ins. It is discouraged.
+AC_ARG_WITH(python,
+ [ --with-python=no|yes|force install Python 3 plug-ins (default=yes)], ,
+ [with_python=yes])
+
+if test "x$with_python" = xno; then
+ warning_python="
+WARNING: you disabled the installation of core Python plug-ins. This is
+ discouraged as it won't provide the full GIMP experience.
+ Note that you may install the Python plug-ins even if you have
+ no Python interpreter at build-time by passing the configure
+ option --with-python=force.
+ Just make sure that a Python python3_required_version or newer
+ interpreter is available at run-time."
+elif test "x$with_python" = xforce; then
+ AM_PATH_PYTHON3(python3_required_version,
+ with_python="yes",
+ with_python="yes (Warning: Python python3_required_version or newer not found)")
+ if test "x$with_python" != "xyes"; then
+ warning_python="
+WARNING: Python python3_required_version or newer was not found.
+ Python plug-ins will be installed anyway but you should make
+ sure that a compatible Python interpreter is available at
+ installation, otherwise installed plug-ins won't be usable."
+ fi
+else # with_python=yes
+ # Mandatory Python check.
+ m4_define([pycheck_error], [
+ required_deps="$required_deps
+ - $1
+ *** Please install $2.
+ *** Note that you may install the Python plug-ins even if you have
+ *** no Python interpreter at build-time by passing the configure
+ *** option --with-python=force.
+ *** Just make sure that a Python python3_required_version or newer
+ *** interpreter is available at run-time."
+ with_python="no"])
+
+ AM_PATH_PYTHON3(python3_required_version,,
+ [pycheck_error([Python 3 (python3_required_version or newer)], [it])])
+fi
+
+if test "x$with_python" = "xyes"; then
if test "x$platform_win32" = "xyes"; then
PYBIN_PATH="$py_exec_prefix\pythonw.exe"
- PYTHON_INCLUDES=`echo "$PYTHON_INCLUDES" | sed -e 's/\\\\/\\//g'`
- py_exec_prefix=`echo "$py_exec_prefix" | sed -e 's/\\\\/\\//g'`
- pylibversion=`echo $PYTHON_VERSION | sed -e 's/\\.//'`
- PYLINK_LIBS="-L${py_exec_prefix}/libs -lpython${pylibversion}"
else
PYBIN_PATH="$PYTHON"
fi
- 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])])
-
- # 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)
-
- # 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])])
-
- GIMP_DETECT_CFLAGS(PYGIMP_EXTRA_CFLAGS, '-fno-strict-aliasing')
- AC_SUBST(PYGIMP_EXTRA_CFLAGS)
fi
-AM_CONDITIONAL(BUILD_PYTHON, test "x$enable_python" != xno)
+AM_CONDITIONAL(HAS_PYTHON_INTERP, test "x$PYBIN_PATH" != "x")
+AM_CONDITIONAL(BUILD_PYTHON, test "x$with_python" != xno)
###########################################################
@@ -3035,7 +3033,7 @@ Optional Plug-Ins:
Heif >= 1.4.0: $have_libheif_1_4_0
PDF (export): $have_cairo_pdf
Print: $enable_print
- Python 3: $enable_python
+ Python 3 plug-ins: $with_python
TWAIN (Win32): $os_win32
Webpage: $have_webkit
WMF: $have_libwmf
@@ -3054,7 +3052,7 @@ Tests:
Test desktop file $have_desktop_file_validate
Bug report URL: $with_bug_report_url
-$override_bug_report_url$warning_vector_icons_windows$warning_glib_networking$warning_gcc"
+$override_bug_report_url$warning_vector_icons_windows$warning_glib_networking$warning_gcc$warning_python"
if test "x$required_deps" = "x"; then
AC_OUTPUT
diff --git a/plug-ins/python/Makefile.am b/plug-ins/python/Makefile.am
index 0785f66e3a..d25aa47684 100644
--- a/plug-ins/python/Makefile.am
+++ b/plug-ins/python/Makefile.am
@@ -63,6 +63,7 @@ CLEANFILES = $(scripts) $(test_scripts)
pyinterpdir = $(gimpplugindir)/interpreters
pyinterpfile = $(pyinterpdir)/pygimp.interp
+if HAS_PYTHON_INTERP
install-interp-file:
$(mkinstalldirs) '$(DESTDIR)$(pyinterpdir)'
echo 'python=$(PYBIN_PATH)' > '$(DESTDIR)$(pyinterpfile)'
@@ -71,6 +72,7 @@ install-interp-file:
echo ":Python:E::py::`basename $(PYTHON)`:" >> '$(DESTDIR)$(pyinterpfile)'
install-data-local: install-interp-file
+endif
uninstall-local:
rm -f '$(DESTDIR)$(pyinterpfile)'
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]