1dnl checks for the GTK version to build against (2 or 3)
2dnl defines GP_GTK_PACKAGE (e.g. "gtk+-2.0"), GP_GTK_VERSION (e.g. "2.24") and
3dnl GP_GTK_VERSION_MAJOR (e.g. "2");  and defines the GP_GTK3 AM conditional
4AC_DEFUN([GP_CHECK_GTK_VERSION],
5[
6    AC_REQUIRE([AC_PROG_AWK])
7    AC_REQUIRE([AC_PROG_SED])
8    AC_REQUIRE([PKG_PROG_PKG_CONFIG])
9
10    GP_GEANY_PKG_CONFIG_PATH_PUSH
11
12    _gtk_req=$(${PKG_CONFIG} --print-requires geany | ${AWK} '/^gtk\+-/{print}')
13    GP_GTK_PACKAGE=$(echo ${_gtk_req} | ${SED} 's/ *[[><=]].*$//')
14    GP_GTK_VERSION=$(echo ${_gtk_req} | ${SED} 's/^.*[[><=]] *//')
15    GP_GTK_VERSION_MAJOR=$(echo ${GP_GTK_VERSION} | cut -d. -f1)
16    AC_SUBST([GP_GTK_PACKAGE])
17    AC_SUBST([GP_GTK_VERSION])
18    AC_SUBST([GP_GTK_VERSION_MAJOR])
19
20    AM_CONDITIONAL([GP_GTK3], [test "x$GP_GTK_VERSION_MAJOR" = x3])
21
22    GP_GEANY_PKG_CONFIG_PATH_POP
23])
24
25dnl executes $1 if GTK3 is used, and $2 otherwise
26AC_DEFUN([GP_CHECK_GTK3],
27[
28    AC_REQUIRE([GP_CHECK_GTK_VERSION])
29    AS_IF([test ${GP_GTK_VERSION_MAJOR} = 3],[$1],[$2])
30])
31
32dnl GP_CHECK_PLUGIN_GTKN_ONLY pluginname gtkversion
33AC_DEFUN([GP_CHECK_PLUGIN_GTKN_ONLY],
34[
35    AC_REQUIRE([GP_CHECK_GTK_VERSION])
36
37    AS_IF([test "$m4_tolower(AS_TR_SH(enable_$1))" = no],[],
38          [AC_MSG_CHECKING([whether the GTK version in use is compatible with plugin $1])
39           AS_IF([test ${GP_GTK_VERSION_MAJOR} = $2],
40                 [AC_MSG_RESULT([yes])],
41                 [AC_MSG_RESULT([no])
42                  AS_IF([test "$m4_tolower(AS_TR_SH(enable_$1))" = yes],
43                        [AC_MSG_ERROR([$1 is not compatible with the GTK version in use])],
44                        [test "$m4_tolower(AS_TR_SH(enable_$1))" = auto],
45                        [m4_tolower(AS_TR_SH(enable_$1))=no])])])
46])
47
48dnl GP_CHECK_PLUGIN_GTK2_ONLY pluginname
49AC_DEFUN([GP_CHECK_PLUGIN_GTK2_ONLY],
50[
51    GP_CHECK_PLUGIN_GTKN_ONLY([$1], [2])
52])
53
54dnl GP_CHECK_PLUGIN_GTK3_ONLY pluginname
55AC_DEFUN([GP_CHECK_PLUGIN_GTK3_ONLY],
56[
57    GP_CHECK_PLUGIN_GTKN_ONLY([$1], [3])
58])
59