persistent_remove MESALIB_OPTS
persistent_remove MESALIB_VULKAN
persistent_remove MESALIB_BUILD
persistent_remove MESALIB_GALLIUM
persistent_remove MESALIB_DRIVERS
persistent_remove MESA_OSMESA

# adjust some flags
MESA_GLES1=${MESA_GLES1/true/enabled}
MESA_GLES2=${MESA_GLES2/true/enabled}
MESA_GLES1=${MESA_GLES1/false/disabled}
MESA_GLES2=${MESA_GLES2/false/disabled}
MESA_EGL=${MESA_EGL/drm/}
MESA_DRI=${MESA_DRI/swrast/}

. $GRIMOIRE/config_query_multi.function &&
. $GRIMOIRE/MESON_CONFIGURE &&

config_query_multi MESA_GLX "glx build types, recommend dri" dri xlib gallium-xlib &&
config_query_multi MESA_EGL "window systems to support,recommend x11" x11 wayland &&


config_query_multi MESA_DRM "which libdrm hardware" AMD INTEL NOUVEAU RADEON &&
# only suggest drivers for specified hardware
local AVAILABLE_DRIVERS=""
local AVAILABLE_GALLIUM="svga swrast virgl zink"
local AVAILABLE_VULKAN="swrast"
if list_find "$MESA_DRM" AMD;then
  AVAILABLE_VULKAN+=" amd"
fi &&
if list_find "$MESA_DRM" RADEON;then
  AVAILABLE_DRIVERS+=" r100 r200"
  AVAILABLE_GALLIUM+=" r300 r600 radeonsi"
fi &&
if list_find "$MESA_DRM" INTEL;then
  AVAILABLE_DRIVERS+=" i915 i965"
  AVAILABLE_GALLIUM+=" i915 iris"
  AVAILABLE_VULKAN+=" intel"
fi &&
if list_find "$MESA_DRM" NOUVEAU;then
  AVAILABLE_DRIVERS+=" nouveau"
  AVAILABLE_GALLIUM+=" nouveau"
fi &&


if list_find "$MESA_GLX" dri;then
  config_query_multi MESA_DRI \
                   "Which drivers would you like to build?" \
                   all $AVAILABLE_DRIVERS &&

  if list_find "$MESA_DRI" all; then
    MESA_DRI="$AVAILABLE_DRIVERS"
  fi
fi &&
# Gallium support

message "${MESSAGE_COLOR}If you want to enable VDPAU you have to select at least one of the r300, r600,$DEFAULT_COLOR" &&
message "${MESSAGE_COLOR}radeonsi or nouveau gallium drivers:${DEFAULT_COLOR}"                                         &&
config_query_multi MESA_GALLIUM \
        "which gallium (accellerated) drivers" \
        none all $AVAILABLE_GALLIUM &&
if list_find "$MESA_GALLIUM" all;then
  MESA_GALLIUM="$AVAILABLE_GALLIUM"
fi &&

# Vulkan support
config_query_multi MESA_VULKAN \
     "which Vulkan drivers to build" \
     none all $AVAILABLE_VULKAN &&
if list_find "$MESA_VULKAN" all; then
   MESA_VULKAN="$AVAILABLE_VULKAN"
fi &&
config_query_option MESA_GLES1 "support GLES1 - embedded systems" n gles1=enabled gles1=disabled &&
config_query_option MESA_GLES2 "support GLES2/3 - embedded systems" n gles2=enabled gles2=disabled &&
config_query_multi MESA_TOOLS  "which tools to build" \
	etnaviv \
	freedreno \
	glsl \
	intel \
	intel-ui \
	nir \
	nouveau \
	xvmc &&
config_query_multi MESA_ARCH   "which arch" avx avx2 knl skx &&
config_query_multi MESA_OMX    "OMax support" auto disabled tizonia bellagio
