{
    "module": "waylandcompositor",
    "condition": "module.gui",
    "depends": [
        "gui-private"
    ],
    "testDir": "../../config.tests",

    "libraries": {
        "wayland-server": {
            "label": "wayland-server",
            "test": "wayland",
            "sources": [
                { "type": "pkgConfig", "args": "wayland-server" },
                "-lwayland-server"
            ]
        },
        "wayland-egl": {
            "test": "wayland_egl",
            "sources": [
                { "type": "pkgConfig", "args": "wayland-egl" },
                "-lwayland-egl",
                "-lEGL"
            ]
        },
        "wayland-kms": {
            "label": "wayland-kms",
            "test": {
                "tail": [
                    "extern \"C\" {",
                    "#define private priv",
                    "#include <wayland-kms.h>",
                    "#undef private",
                    "}"
                ],
                "main": [
                    "struct wl_resource *buffer = nullptr;",
                    "struct wl_kms_buffer *kmsBuffer = wayland_kms_buffer_get(buffer);"
                ]
            },
            "sources": [
                { "type": "pkgConfig", "args": "wayland-kms" },
                "-lwayland-kms"
            ]
        },
        "xcomposite": {
            "test": "xcomposite",
            "sources": [
                { "type": "pkgConfig", "args": "xcomposite" },
                "-lxcomposite"
            ]
        },
        "glx": {
            "test": "glx",
            "sources": [
                { "type": "pkgConfig", "args": "x11 gl" },
                "-lX11 -lGl"
            ]
        }
    },

    "tests": {
        "wayland-scanner": {
            "type": "compile",
            "test": "wayland_scanner",
            "use": "wayland-server"
        },
        "drm-egl-server": {
            "type": "compile",
            "test": "drm_egl_server",
            "use": "egl"
        },
        "libhybris-egl-server": {
            "type": "compile",
            "test": "libhybris_egl_server",
            "use": "egl"
        },
        "dmabuf-server-buffer": {
            "label": "Linux dma-buf Buffer Sharing",
            "type": "compile",
            "test": "dmabuf_server_buffer",
            "use": "egl"
        }
    },

    "features": {
        "wayland-server": {
            "label": "Qt Wayland Compositor",
            "condition": "!config.win32 && libs.wayland-server && tests.wayland-scanner",
            "output": [ "privateFeature" ]
        },
        "wayland-datadevice": {
            "condition": "features.draganddrop || features.clipboard",
            "output": [ "privateFeature" ]
        },
        "wayland-egl": {
            "label": "EGL",
            "condition": "features.wayland-server && features.opengl && features.egl && libs.wayland-egl",
            "output": [ "privateFeature" ]
        },
        "wayland-brcm": {
            "label": "Raspberry Pi",
            "condition": "features.wayland-server && features.eglfs_brcm",
            "output": [ "privateFeature" ]
        },
        "xcomposite-egl": {
            "label": "XComposite EGL",
            "condition": "features.wayland-server && features.egl && features.opengl && libs.xcomposite",
            "output": [ "privateFeature" ]
        },
        "xcomposite-glx": {
            "label": "XComposite EGL",
            "condition": "features.wayland-server && features.opengl && !features.opengles2 && libs.xcomposite && libs.glx",
            "output": [ "privateFeature" ]
        },
        "wayland-drm-egl-server-buffer": {
            "label": "DRM EGL",
            "condition": "features.wayland-server && features.opengl && features.egl && tests.drm-egl-server",
            "output": [ "privateFeature" ]
        },
        "wayland-libhybris-egl-server-buffer": {
            "label": "libhybris EGL",
            "condition": "features.wayland-server && features.opengl && features.egl && tests.libhybris-egl-server",
            "output": [ "privateFeature" ]
        },
        "wayland-dmabuf-server-buffer": {
            "label": "Linux dma-buf server buffer integration",
            "condition": "features.wayland-server && features.opengl && features.egl && tests.dmabuf-server-buffer",
            "output": [ "privateFeature" ]
        },
        "wayland-shm-emulation-server-buffer": {
            "label": "Shm emulation server buffer",
            "condition": "features.wayland-server && features.opengl",
            "output": [ "privateFeature" ]
        },
        "wayland-layer-integration-vsp2": {
            "label": "VSP2 hardware layer integration",
            "condition": "features.wayland-server && features.eglfs_vsp2 && libs.wayland-kms",
            "output": [ "privateFeature" ]
        }
    },

    "summary": [
        "wayland-server",
        {
            "section": "Qt Wayland Compositor Layer Plugins",
            "condition": "features.wayland-server",
            "entries": [
                "wayland-layer-integration-vsp2"
            ]
        }
    ]
}
