Blame m4/vapigen.m4

Packit Service ca3877
dnl vapigen.m4
Packit Service ca3877
dnl
Packit Service ca3877
dnl Copyright 2012 Evan Nemerson, Daniel Espinosa
Packit Service ca3877
dnl
Packit Service ca3877
dnl This library is free software; you can redistribute it and/or
Packit Service ca3877
dnl modify it under the terms of the GNU Lesser General Public
Packit Service ca3877
dnl License as published by the Free Software Foundation; either
Packit Service ca3877
dnl version 2.1 of the License, or (at your option) any later version.
Packit Service ca3877
dnl
Packit Service ca3877
dnl This library is distributed in the hope that it will be useful,
Packit Service ca3877
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service ca3877
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service ca3877
dnl Lesser General Public License for more details.
Packit Service ca3877
dnl
Packit Service ca3877
dnl You should have received a copy of the GNU Lesser General Public
Packit Service ca3877
dnl License along with this library; if not, write to the Free Software
Packit Service ca3877
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
Packit Service ca3877
Packit Service ca3877
# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT])
Packit Service ca3877
# --------------------------------------
Packit Service ca3877
# Check vapigen existence and version. GObject Introspection is required, then
Packit Service ca3877
# set FOUND-INTROSPECTION to [yes] or use call GOBJECT_INTROSPECTION_CHECK or
Packit Service ca3877
# GOBJECT_INTROSPECTION_REQUIRE. This is an internal macro, use VAPIGEN_CHECK,
Packit Service ca3877
# VAPIGEN_GI_CHECK or VAPIGEN_GI_REQUIRE.
Packit Service ca3877
#
Packit Service ca3877
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
Packit Service ca3877
m4_define([_VAPIGEN_CHECK_INTERNAL],
Packit Service ca3877
[
Packit Service ca3877
  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
Packit Service ca3877
  AC_REQUIRE([AM_PROG_VALAC])
Packit Service ca3877
  AC_ARG_ENABLE([vala],
Packit Service ca3877
    [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
Packit Service ca3877
      AS_IF([ test "x$4" = "x"], [
Packit Service ca3877
          enable_vala=auto
Packit Service ca3877
        ], [
Packit Service ca3877
          enable_vala=$4
Packit Service ca3877
        ])
Packit Service ca3877
    ])
Packit Service ca3877
	AS_IF([ test "x$enable_vala" = "xyes" -o "x$enable_vala" = "xauto"],
Packit Service ca3877
		[
Packit Service ca3877
			AS_IF([ test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
Packit Service ca3877
				AC_MSG_ERROR([Vala bindings require GObject Introspection])
Packit Service ca3877
			])
Packit Service ca3877
		], [
Packit Service ca3877
			AS_IF([ test "x$enable_vala" != "no"],[
Packit Service ca3877
					vapigen_pkg_found=no
Packit Service ca3877
				],[
Packit Service ca3877
				AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
Packit Service ca3877
			])
Packit Service ca3877
		])
Packit Service ca3877
  AS_IF([ test "x$2" = "x"], [
Packit Service ca3877
      vapigen_pkg_name=vapigen
Packit Service ca3877
    ], [
Packit Service ca3877
      vapigen_pkg_name=vapigen-$2
Packit Service ca3877
    ])
Packit Service ca3877
  AS_IF([ test "x$1" = "x"], [
Packit Service ca3877
      vapigen_pkg="$vapigen_pkg_name"
Packit Service ca3877
    ], [
Packit Service ca3877
      vapigen_pkg="$vapigen_pkg_name >= $1"
Packit Service ca3877
    ])
Packit Service ca3877
  AS_IF([ test "x$enable_vala" = "xyes" -o "x$enable_vala" = "xauto"], [
Packit Service ca3877
		AC_MSG_CHECKING([for vapigen $vapigen_pkg_name])
Packit Service ca3877
		PKG_CHECK_EXISTS([ $vapigen_pkg ], [
Packit Service ca3877
		        vapigen_pkg_found=yes
Packit Service ca3877
		  ], [
Packit Service ca3877
		        vapigen_pkg_found=no
Packit Service ca3877
		        AC_MSG_RESULT([no])
Packit Service ca3877
		        AC_MSG_NOTICE([Searching for $vapigen_pkg_name program...])
Packit Service ca3877
		        AC_PATH_PROG(VAPIGEN, [$vapigen_pkg_name], [no])
Packit Service ca3877
		        if test "x$VAPIGEN" = "xno"
Packit Service ca3877
		        then
Packit Service ca3877
		          check_prog=no
Packit Service ca3877
		        else
Packit Service ca3877
		          check_prog=yes
Packit Service ca3877
		        fi
Packit Service ca3877
		  ])
Packit Service ca3877
Packit Service ca3877
		AS_CASE([$vapigen_pkg_found],
Packit Service ca3877
		  [yes], [
Packit Service ca3877
		      VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen`
Packit Service ca3877
		      VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen
Packit Service ca3877
		      VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
Packit Service ca3877
		      AS_IF([ test "x$2" = "x"], [
Packit Service ca3877
		          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
Packit Service ca3877
		        ], [
Packit Service ca3877
		          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen`
Packit Service ca3877
		        ])
Packit Service ca3877
		    ],
Packit Service ca3877
		 [no], [
Packit Service ca3877
		    AS_CASE([$check_prog],[no],[
Packit Service ca3877
		        AC_MSG_ERROR([Can't locate $vapigen_pkg program])
Packit Service ca3877
		      ], [yes], [
Packit Service ca3877
		        AS_IF([ test "x$2" = "x"], [
Packit Service ca3877
		            vala_pkg_name=libvala
Packit Service ca3877
		          ], [
Packit Service ca3877
		            vala_pkg_name=libvala-$2
Packit Service ca3877
		          ])
Packit Service ca3877
		        AS_IF([ test "x$1" = "x"], [
Packit Service ca3877
		            vala_pkg="$vala_pkg_name"
Packit Service ca3877
		          ], [
Packit Service ca3877
		            vala_pkg="$vala_pkg_name >= $1"
Packit Service ca3877
		          ])
Packit Service ca3877
						AC_MSG_CHECKING([for $vala_pkg])
Packit Service ca3877
		        PKG_CHECK_EXISTS([$vala_pkg], [
Packit Service ca3877
		            VALA_DATADIR=`pkg-config $vala_pkg --variable=datadir`
Packit Service ca3877
                VAPIDIR="$VALA_DATADIR/vala/vapi"
Packit Service ca3877
                VAPIGEN_MAKEFILE="$VALA_DATADIR/vala/Makefile.vapigen"
Packit Service ca3877
                AS_IF([ test "x$2" = "x"], [
Packit Service ca3877
						      VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
Packit Service ca3877
						    ], [
Packit Service ca3877
						      VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen`
Packit Service ca3877
						    ])
Packit Service ca3877
                vapigen_pkg_found=yes
Packit Service ca3877
		          ], [
Packit Service ca3877
		            AS_CASE([$enable_vala], [yes], [
Packit Service ca3877
		                AC_MSG_ERROR([$vala_pkg not found])
Packit Service ca3877
		              ], [auto], [
Packit Service ca3877
		                vapigen_pkg_found=no
Packit Service ca3877
		              ])
Packit Service ca3877
		          ])
Packit Service ca3877
		     ])
Packit Service ca3877
		  ])
Packit Service ca3877
Packit Service ca3877
		AC_MSG_RESULT([$vapigen_pkg_found])
Packit Service ca3877
Packit Service ca3877
Packit Service ca3877
	])
Packit Service ca3877
	AC_SUBST([VAPIGEN])
Packit Service ca3877
	AC_SUBST([VAPIGEN_VAPIDIR])
Packit Service ca3877
	AC_SUBST([VAPIDIR])
Packit Service ca3877
	AC_SUBST([VAPIGEN_MAKEFILE])
Packit Service ca3877
Packit Service ca3877
	AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$vapigen_pkg_found" = "xyes")
Packit Service ca3877
])
Packit Service ca3877
Packit Service ca3877
dnl Check VAPIGEN
Packit Service ca3877
# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT])
Packit Service ca3877
# --------------------------------------
Packit Service ca3877
# Check vapigen existence and version. Set FOUND-INTROSPECTION to [yes]
Packit Service ca3877
# if you have detected GObject Introspection without GOBJECT_INTROSPECTION_CHECK
Packit Service ca3877
# or GOBJECT_INTROSPECTION_REQUIRE macros.
Packit Service ca3877
#
Packit Service ca3877
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
Packit Service ca3877
AC_DEFUN([VAPIGEN_CHECK],
Packit Service ca3877
[
Packit Service ca3877
  _VAPIGEN_CHECK_INTERNAL($1,$2,$3,$4)
Packit Service ca3877
]
Packit Service ca3877
)
Packit Service ca3877
Packit Service ca3877
dnl usage:
Packit Service ca3877
# VAPIGEN_GI_CHECK([VERSION], [API_VERSION], [DEFAULT])
Packit Service ca3877
# --------------------------------------
Packit Service ca3877
# Check vapigen existence and version. You must call GOBJECT_INTROSPECTION_CHECK
Packit Service ca3877
# first in order to call this macro.
Packit Service ca3877
#
Packit Service ca3877
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
Packit Service ca3877
AC_DEFUN([VAPIGEN_GI_CHECK],
Packit Service ca3877
[
Packit Service ca3877
  AC_REQUIRE([GOBJECT_INTROSPECTION_CHECK])
Packit Service ca3877
  _VAPIGEN_CHECK_INTERNAL([$1],[$2],[$found_introspection],[$3])
Packit Service ca3877
]
Packit Service ca3877
)
Packit Service ca3877
Packit Service ca3877
dnl usage:
Packit Service ca3877
# VAPIGEN_GI_REQUIRE([VERSION], [API_VERSION], [DEFAULT])
Packit Service ca3877
# --------------------------------------
Packit Service ca3877
# Check vapigen existence and version. You must call GOBJECT_INTROSPECTION_REQUIRE
Packit Service ca3877
# first in order to call this macro.
Packit Service ca3877
#
Packit Service ca3877
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
Packit Service ca3877
AC_DEFUN([VAPIGEN_GI_REQUIRE],
Packit Service ca3877
[
Packit Service ca3877
  AC_REQUIRE([GOBJECT_INTROSPECTION_REQUIRE])
Packit Service ca3877
	_VAPIGEN_CHECK_INTERNAL([$1],[$2],[$found_introspection],[$3])
Packit Service ca3877
]
Packit Service ca3877
)
Packit Service ca3877