Test Autofoo pour la version maximum de Python
-
30-09-2019 - |
Question
Je suis en train de se autofoo à tester pour maximale version de Python plutôt que d'un minimum. Exemple:
AC_REQUIRE([AM_PATH_PYTHON([2.7])])
... testera pour Python> = 2.7, et probablement tourner avec / usr / bin / python3. Je veux revenir plus rien que python2.7, cependant.
Yat-il un moyen simple de le faire? Je me suis renseigné, et à ce jour la meilleure réponse que j'ai obtenu est, « réécrire la macro. »
Merci à l'avance!
La solution
1). Ajouter à acinclude.m4
`# my_CHECK_MAJOR_VERSION(VARIABLE, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])`
`# ---------------------------------------------------------------------------`
`# Run ACTION-IF-TRUE if the VAR has a major version >= VERSION.`
`# Run ACTION-IF-FALSE otherwise.`
AC_DEFUN([my_CHECK_MAJOR_VERSION],
[AC_MSG_CHECKING([whether $1 $$1 major version == $2])
case $$1 in
$2*)
AC_MSG_RESULT([yes])
ifelse([$3], [$3], [:])
;;
*)
AC_MSG_RESULT([no])
ifelse([$4], , [AC_MSG_ERROR([$$1 differs from $2])], [$4])
;;
esac])
2.) Ajouter à zconfigure.inz
my_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])
3). aclocal
, automake
, autoconf
Voilà.
Autres conseils
L'argument de la version à AM_PATH_PYTHON
est facultative. Si python est nécessaire, appelez comme ceci:
AM_PATH_PYTHON
Si ce n'est pas nécessaire, appeler comme ceci:
AM_PATH_PYTHON(,, [:])
Maintenant, AM_PATH_PYTHON
définit la $PYTHON_VERSION
variable shell à la valeur de sys.version[:3]
, que vous pouvez vous tester.
Une autre solution peut établirons la valeur par défaut pour _AM_PYTHON_INTERPRETER_LIST , pour inclure uniquement les binaires Python 2.