AC_INIT([minori], [0.1.0-alpha.1])

AC_CANONICAL_HOST

AC_CONFIG_SUBDIRS([dep/pugixml dep/animone dep/anitomy])
AC_CONFIG_SRCDIR([src/main.cc])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])

AM_INIT_AUTOMAKE([-Wall -Wportability foreign subdir-objects])

dnl need C compiler for utf8proc
AC_PROG_CC

dnl Do we have a C++17 compiler
: ${CXXFLAGS=""}
AC_PROG_CXX
AX_CXX_COMPILE_STDCXX([17], [noext], [mandatory])

dnl Init libtool
AM_PROG_AR
LT_INIT

dnl Qt?
have_qt=no
AX_HAVE_QT

AS_IF([test "x$have_qt" = "xno"], [AC_MSG_ERROR([*** Qt not found.])])
AC_SUBST([QT_LRELEASE])
AC_SUBST([QT_LUPDATE])
AC_SUBST([QT_MOC])
AC_SUBST([QT_RCC])

dnl need this for moc
AC_PROG_MKDIR_P
AC_SUBST([MKDIR_P])

dnl libcurl?
LIBCURL_CHECK_CONFIG([yes], [7.7.2], [have_libcurl=yes], [have_libcurl=no])

AS_IF([test "x$have_libcurl" = "xno"], [AC_MSG_ERROR([*** libcurl not found.])])

build_windows=no
build_osx=no
build_linux=no
build_glib=no

AS_CASE(["$host_os"],
	[cygwin*|mingw*], [build_windows=yes],
	[darwin*], [build_osx=yes],
	[linux*], [build_linux=yes],
	[])

if test "x$build_windows" = "xyes"; then
	AC_DEFINE([WIN32])

	dnl Check for windres
	AC_CHECK_TOOL([WINDRES], [windres])
	AC_SUBST([WINDRES])
elif test "x$build_osx" = "xyes"; then
	AC_DEFINE([MACOSX])
else
	AS_IF([test "x$build_linux" = "xyes"], [AC_DEFINE([linux])])

	PKG_CHECK_MODULES([GLIB], [gio-2.0 glib-2.0], [build_glib=yes], [build_glib=no])
	if test "x$build_glib" = "xyes"; then
		AC_DEFINE([GLIB])

		AC_SUBST([GLIB_CFLAGS])
		AC_SUBST([GLIB_LIBS])
	fi
fi

AC_DEFINE([UTF8PROC_STATIC])

AM_CONDITIONAL([BUILD_WIN], [test "x$build_windows" = "xyes"])
AM_CONDITIONAL([BUILD_OSX], [test "x$build_osx" = "xyes"])
AM_CONDITIONAL([BUILD_GLIB], [test "x$build_glib" = "xyes"])
AM_CONDITIONAL([BUILD_WINDRES], [test "x$WINDRES" != "x"])

AC_CONFIG_FILES([Makefile])
AC_OUTPUT
