summaryrefslogtreecommitdiffstats
path: root/src/compositor/configure.json
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/configure.json')
-rw-r--r--src/compositor/configure.json122
1 files changed, 112 insertions, 10 deletions
diff --git a/src/compositor/configure.json b/src/compositor/configure.json
index 0dbb33643..42df2ddf0 100644
--- a/src/compositor/configure.json
+++ b/src/compositor/configure.json
@@ -9,14 +9,34 @@
"libraries": {
"wayland-server": {
"label": "wayland-server",
- "test": "wayland",
+ "headers": "wayland-version.h",
+ "test": {
+ "main": [
+ "#if WAYLAND_VERSION_MAJOR < 1",
+ "# error Wayland 1.8.0 or higher required",
+ "#endif",
+ "#if WAYLAND_VERSION_MAJOR == 1",
+ "# if WAYLAND_VERSION_MINOR < 8",
+ "# error Wayland 1.8.0 or higher required",
+ "# endif",
+ "# if WAYLAND_VERSION_MINOR == 8",
+ "# if WAYLAND_VERSION_MICRO < 0",
+ "# error Wayland 1.8.0 or higher required",
+ "# endif",
+ "# endif",
+ "#endif"
+ ]
+ },
"sources": [
{ "type": "pkgConfig", "args": "wayland-server" },
"-lwayland-server"
]
},
"wayland-egl": {
- "test": "wayland_egl",
+ "headers": "wayland-egl.h",
+ "test": {
+ "main": "struct wl_egl_window *window = wl_egl_window_create(0, 100, 100);"
+ },
"sources": [
{ "type": "pkgConfig", "args": "wayland-egl" },
"-lwayland-egl",
@@ -45,14 +65,24 @@
]
},
"xcomposite": {
- "test": "xcomposite",
+ "headers": "X11/extensions/Xcomposite.h",
+ "test": {
+ "main": "XCompositeRedirectWindow((Display *)0,(Window) 0, CompositeRedirectManual);"
+ },
"sources": [
{ "type": "pkgConfig", "args": "xcomposite" },
"-lxcomposite"
]
},
"glx": {
- "test": "glx",
+ "headers": "GL/glx.h",
+ "test": {
+ "main": [
+ "Display *dpy = XOpenDisplay(0);",
+ "int items = 0;",
+ "GLXFBConfig *fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), 0 , &items);"
+ ]
+ },
"sources": [
{ "type": "pkgConfig", "args": "x11 gl" },
"-lX11 -lGl"
@@ -68,30 +98,102 @@
},
"drm-egl-server": {
"type": "compile",
- "test": "drm_egl_server",
+ "test": {
+ "include": [
+ "EGL/egl.h",
+ "EGL/eglext.h"
+ ],
+ "main": [
+ "#ifdef EGL_MESA_drm_image",
+ "return 0;",
+ "#else",
+ "#error Requires EGL_MESA_drm_image to be defined",
+ "return 1;",
+ "#endif"
+ ]
+ },
"use": "egl"
},
"libhybris-egl-server": {
"type": "compile",
- "test": "libhybris_egl_server",
+ "test": {
+ "include": [
+ "EGL/egl.h",
+ "EGL/eglext.h",
+ "hybris/eglplatformcommon/hybris_nativebufferext.h"
+ ],
+ "main": [
+ "#ifdef EGL_HYBRIS_native_buffer",
+ "return 0;",
+ "#else",
+ "#error Requires EGL_HYBRIS_native_buffer to be defined",
+ "return 1;",
+ "#endif"
+ ]
+ },
"use": "egl"
},
"dmabuf-server-buffer": {
"label": "Linux dma-buf Buffer Sharing",
"type": "compile",
- "test": "dmabuf_server_buffer",
+ "test": {
+ "include": [
+ "EGL/egl.h",
+ "EGL/eglext.h",
+ "drm_fourcc.h"
+ ],
+ "main": [
+ "#ifdef EGL_LINUX_DMA_BUF_EXT",
+ "return 0;",
+ "#else",
+ "#error Requires EGL_LINUX_DMA_BUF_EXT",
+ "return 1;",
+ "#endif"
+ ]
+ },
"use": "egl drm"
},
"dmabuf-client-buffer": {
"label": "Linux Client dma-buf Buffer Sharing",
"type": "compile",
- "test": "dmabuf_client_buffer",
+ "test": {
+ "include": [
+ "EGL/egl.h",
+ "EGL/eglext.h",
+ "drm_mode.h",
+ "drm_fourcc.h"
+ ],
+ "main": [
+ "// test if DMA BUF is supported",
+ "#ifndef EGL_LINUX_DMA_BUF_EXT",
+ "#error DMA BUF Extension not available",
+ "#endif",
+ "// test if DMA BUF import modifier extension is supported",
+ "#ifndef EGL_EXT_image_dma_buf_import_modifiers",
+ "#error DMA BUF Import modifier extension not available",
+ "#endif",
+ "return 0;"
+ ]
+ },
"use": "egl drm"
},
"vulkan-server-buffer": {
"label": "Vulkan Buffer Sharing",
"type": "compile",
- "test": "vulkan_server_buffer"
+ "test": {
+ "head": [
+ "#define VK_USE_PLATFORM_WAYLAND_KHR 1"
+ ],
+ "include": [
+ "vulkan/vulkan.h"
+ ],
+ "main": [
+ "VkExportMemoryAllocateInfoKHR exportAllocInfo = {};",
+ "exportAllocInfo.sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;",
+ "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
+ "return 0;"
+ ]
+ }
}
},
@@ -147,7 +249,7 @@
},
"wayland-vulkan-server-buffer": {
"label": "Vulkan-based server buffer integration",
- "condition": "features.wayland-server && features.opengl && features.egl && tests.vulkan-server-buffer",
+ "condition": "features.wayland-server && features.vulkan && features.opengl && features.egl && tests.vulkan-server-buffer",
"output": [ "privateFeature" ]
},
"wayland-shm-emulation-server-buffer": {