Blame m4/vapigen.m4

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