When we are using compiled languages – we are usually depending on pkg-config files. For example, “PKG_CHECK_MODULES(GLIB, glib2)”, but what if we are using Python?
Autoconf Archive has AX_PYTHON_MODULE macros. We can use it very easy.
How about Python + GObject Introspection? Let’s take GTK+ as an example. I wrote special m4 file (see below), you can place it in “m4” directory. Then you just need add “AX_PYTHON_GI(Gtk, 3.0)” into “configure.ac” and autoconf will check if GI works and Gtk-3.0.typelib is usable.
P.S. note that I’m not m4 expert, but it works for me.
# SYNOPSIS
#
# AX_PYTHON_GI(gi_module, version[, python])
#
# DESCRIPTION
#
# Checks for Python GObject Introspection and GI module with the given
# version.
#
# LICENSE
#
# Copyright (C) 2015 Igor Gnatenko <ignatenko@src.gnome.org>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
AC_DEFUN([AX_PYTHON_GI], [
AC_MSG_CHECKING([for bindings for GObject Introspection])
AX_PYTHON_MODULE([gi], [required], [$3])
AC_MSG_CHECKING([for version $2 of $1 GObject Introspection module])
$PYTHON -c "import gi; gi.require_version('$1', '$2')" 2> /dev/null
AS_IF([test $? -eq 0], [], [
AC_MSG_RESULT([no])
AC_MSG_ERROR([You need version $2 of the $1 GObject Introspection module.])
])
AC_MSG_RESULT([yes])
])
Comments are closed.
Planning on submitting this to autoconf-archive?
Don’t have time for this. You can do this for me
The contribution process is pretty easy. Just checkout autoconf-archive, create the new m4 file, ensure the documentation and copyrights are correct, commit it, then send a push request.
I can’t really submit your work for you!
When I again read documentation it should add “install-exec-hook”, not just check for something. I will try to make this m4 better and will submit to upstream. Thanks!