Blame m4/vapigen.m4

Packit Service c6b9b0
dnl vapigen.m4
Packit Service c6b9b0
dnl
Packit Service c6b9b0
dnl Copyright 2012 Evan Nemerson
Packit Service c6b9b0
dnl
Packit Service c6b9b0
dnl This library is free software; you can redistribute it and/or
Packit Service c6b9b0
dnl modify it under the terms of the GNU Lesser General Public
Packit Service c6b9b0
dnl License as published by the Free Software Foundation; either
Packit Service c6b9b0
dnl version 2.1 of the License, or (at your option) any later version.
Packit Service c6b9b0
dnl
Packit Service c6b9b0
dnl This library is distributed in the hope that it will be useful,
Packit Service c6b9b0
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service c6b9b0
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service c6b9b0
dnl Lesser General Public License for more details.
Packit Service c6b9b0
dnl
Packit Service c6b9b0
dnl You should have received a copy of the GNU Lesser General Public
Packit Service c6b9b0
dnl License along with this library; if not, write to the Free Software
Packit Service c6b9b0
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
Packit Service c6b9b0
Packit Service c6b9b0
# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND_INTROSPECTION], [DEFAULT])
Packit Service c6b9b0
# --------------------------------------
Packit Service c6b9b0
# Check vapigen existence and version
Packit Service c6b9b0
#
Packit Service c6b9b0
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
Packit Service c6b9b0
AC_DEFUN([VAPIGEN_CHECK],
Packit Service c6b9b0
[
Packit Service c6b9b0
  AS_IF([test "x$3" != "xyes"], [
Packit Service c6b9b0
      m4_provide_if([GOBJECT_INTROSPECTION_CHECK], [], [
Packit Service c6b9b0
          m4_provide_if([GOBJECT_INTROSPECTION_REQUIRE], [], [
Packit Service c6b9b0
              AC_MSG_ERROR([[You must call GOBJECT_INTROSPECTION_CHECK or GOBJECT_INTROSPECTION_REQUIRE before using VAPIGEN_CHECK unless using the FOUND_INTROSPECTION argument is "yes"]])
Packit Service c6b9b0
            ])
Packit Service c6b9b0
        ])
Packit Service c6b9b0
    ])
Packit Service c6b9b0
Packit Service c6b9b0
  AC_ARG_ENABLE([vala],
Packit Service c6b9b0
    [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
Packit Service c6b9b0
      AS_IF([test "x$4" = "x"], [
Packit Service c6b9b0
          enable_vala=auto
Packit Service c6b9b0
        ], [
Packit Service c6b9b0
          enable_vala=$4
Packit Service c6b9b0
        ])
Packit Service c6b9b0
    ])
Packit Service c6b9b0
Packit Service c6b9b0
  AS_CASE([$enable_vala], [no], [enable_vala=no],
Packit Service c6b9b0
      [yes], [
Packit Service c6b9b0
        AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
Packit Service c6b9b0
            AC_MSG_ERROR([Vala bindings require GObject Introspection])
Packit Service c6b9b0
          ])
Packit Service c6b9b0
      ], [auto], [
Packit Service c6b9b0
        AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
Packit Service c6b9b0
            enable_vala=no
Packit Service c6b9b0
          ])
Packit Service c6b9b0
      ], [
Packit Service c6b9b0
        AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
Packit Service c6b9b0
      ])
Packit Service c6b9b0
Packit Service c6b9b0
  AS_IF([test "x$2" = "x"], [
Packit Service c6b9b0
      vapigen_pkg_name=vapigen
Packit Service c6b9b0
    ], [
Packit Service c6b9b0
      vapigen_pkg_name=vapigen-$2
Packit Service c6b9b0
    ])
Packit Service c6b9b0
  AS_IF([test "x$1" = "x"], [
Packit Service c6b9b0
      vapigen_pkg="$vapigen_pkg_name"
Packit Service c6b9b0
    ], [
Packit Service c6b9b0
      vapigen_pkg="$vapigen_pkg_name >= $1"
Packit Service c6b9b0
    ])
Packit Service c6b9b0
Packit Service c6b9b0
  PKG_PROG_PKG_CONFIG
Packit Service c6b9b0
Packit Service c6b9b0
  PKG_CHECK_EXISTS([$vapigen_pkg], [
Packit Service c6b9b0
      AS_IF([test "$enable_vala" = "auto"], [
Packit Service c6b9b0
          enable_vala=yes
Packit Service c6b9b0
        ])
Packit Service c6b9b0
    ], [
Packit Service c6b9b0
      AS_CASE([$enable_vala], [yes], [
Packit Service c6b9b0
          AC_MSG_ERROR([$vapigen_pkg not found])
Packit Service c6b9b0
        ], [auto], [
Packit Service c6b9b0
          enable_vala=no
Packit Service c6b9b0
        ])
Packit Service c6b9b0
    ])
Packit Service c6b9b0
Packit Service c6b9b0
  AC_MSG_CHECKING([for vapigen])
Packit Service c6b9b0
Packit Service c6b9b0
  AS_CASE([$enable_vala],
Packit Service c6b9b0
    [yes], [
Packit Service c6b9b0
      VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
Packit Service c6b9b0
      VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
Packit Service c6b9b0
      AS_IF([test "x$2" = "x"], [
Packit Service c6b9b0
          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
Packit Service c6b9b0
        ], [
Packit Service c6b9b0
          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
Packit Service c6b9b0
        ])
Packit Service c6b9b0
    ])
Packit Service c6b9b0
Packit Service c6b9b0
  AC_MSG_RESULT([$enable_vala])
Packit Service c6b9b0
Packit Service c6b9b0
  AC_SUBST([VAPIGEN])
Packit Service c6b9b0
  AC_SUBST([VAPIGEN_VAPIDIR])
Packit Service c6b9b0
  AC_SUBST([VAPIGEN_MAKEFILE])
Packit Service c6b9b0
Packit Service c6b9b0
  AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
Packit Service c6b9b0
])