aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac41
1 files changed, 35 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index d26e69b..8a2c3d4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,15 +6,44 @@ AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign subdir-objects])
AC_CONFIG_FILES([Makefile src/Makefile])
-
-dnl TODO: add check for Vulkan Utility Library
-PKG_CHECK_MODULES( [GLFW3], [glfw3 >= 3.3.10])
-PKG_CHECK_MODULES( [VULKAN], [vulkan >= 1.3.275])
-PKG_HAVE_DEFINE_WITH_MODULES([NCURSES], [ncurses >= 6.4.20230625])
+AC_REQUIRE_AUX_FILE([tap-driver.sh])
AC_PROG_CXX
AC_TYPE_UINT32_T
AC_CHECK_FUNCS([floor setlocale])
-AC_REQUIRE_AUX_FILE([tap-driver.sh])
+dnl TODO: add check for Vulkan Utility Library
+
+PKG_CHECK_MODULES([GLFW3], [glfw3 >= 3.3.10])
+
+dnl TODO: improve vulkan detection
+
+dnl TODO: sdk detection is too minimal
+AC_MSG_CHECKING([for VULKAN_SDK])
+AS_IF([test "x$VULKAN_SDK" != x], [AC_MSG_RESULT([yes])], [
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([VULKAN_SDK is not set. You have to source setup-env.sh from LunarG's Vulkan SDK before configuring.])
+])
+
+AC_LANG([C])
+CFLAGS_save="$CFLAGS"
+LIBS_save="$LIBS"
+CFLAGS="$VULKAN_CFLAGS"
+LIBS="$LIBS $VULKAN_LIBS"
+AC_MSG_CHECKING([for Vulkan version 1.4.313])
+AC_RUN_IFELSE([AC_LANG_PROGRAM([
+#include <stdlib.h>
+#include <vulkan/vulkan.h>
+],[if (VK_HEADER_VERSION_COMPLETE != VK_MAKE_API_VERSION(0, 1, 4, 313)) exit(1)])], [AC_MSG_RESULT([yes])], [
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Vulkan not found, or wrong version (1.4.313 required)])
+])
+CFLAGS="$CFLAGS_save"
+LIBS="$LIBS_save"
+
+AC_SUBST([VULKAN_CFLAGS])
+AC_SUBST([VULKAN_LIBS])
+
+PKG_HAVE_DEFINE_WITH_MODULES([NCURSES], [ncurses >= 6.4.20230625])
+
AC_OUTPUT