From 878ccf13758791d2a6e52d58731827c6fc83d1db Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 13 Jun 2026 08:27:25 +0800 Subject: [PATCH] DisplayServer (Linux): use kernel headers if libdrm is not available --- src/detection/displayserver/linux/drm.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/detection/displayserver/linux/drm.c b/src/detection/displayserver/linux/drm.c index 6ee4d5282..6b6cfe462 100644 --- a/src/detection/displayserver/linux/drm.c +++ b/src/detection/displayserver/linux/drm.c @@ -106,12 +106,18 @@ static const char* drmParseSysfs(FFDisplayServerResult* result) { } #endif -#ifdef FF_HAVE_DRM +#if FF_HAVE_DRM || __has_include() #include #include - #include - #include + #if FF_HAVE_DRM + #include + #include + #else + #define FF_HAVE_DRM 1 + #include + #include + #endif // https://gitlab.freedesktop.org/mesa/drm/-/blob/main/xf86drmMode.c#L1785 // It's not supported on Ubuntu 20.04 @@ -432,7 +438,7 @@ static const char* drmConnectLibdrm(FFDisplayServerResult* result) { #endif const char* ffdsConnectDrm(FF_A_UNUSED FFDisplayServerResult* result) { -#ifdef FF_HAVE_DRM +#if FF_HAVE_DRM if (instance.config.general.dsForceDrm != FF_DS_FORCE_DRM_TYPE_SYSFS_ONLY) { if (drmConnectLibdrm(result) == NULL) { return NULL;