Blame m4/vapigen.m4

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