Blame build/m4/vapigen.m4

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