# Copyright © SixtyFPS GmbH <info@slint.dev>
# SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial

[package]
name = "i-slint-backend-selector"
description = "Helper crate to pick the default rendering backend for Slint"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true
build = "build.rs"

[lib]
path = "lib.rs"

[features]
backend-winit = ["backend-winit-x11", "backend-winit-wayland"]
backend-winit-x11 = ["i-slint-backend-winit/x11"]
backend-winit-wayland = ["i-slint-backend-winit/wayland"]
backend-linuxkms = ["i-slint-backend-linuxkms/libseat"]
backend-linuxkms-noseat = ["i-slint-backend-linuxkms"]
backend-qt = ["i-slint-backend-qt/enable"]

renderer-femtovg = ["i-slint-backend-winit?/renderer-femtovg", "i-slint-backend-linuxkms?/renderer-femtovg"]
renderer-skia = ["i-slint-backend-winit?/renderer-skia", "i-slint-backend-linuxkms?/renderer-skia"]
renderer-skia-opengl = ["i-slint-backend-winit?/renderer-skia-opengl", "i-slint-backend-linuxkms?/renderer-skia-opengl", "i-slint-renderer-skia/opengl"]
renderer-skia-vulkan = ["i-slint-backend-winit?/renderer-skia-vulkan", "i-slint-backend-linuxkms?/renderer-skia-vulkan", "i-slint-renderer-skia/vulkan"]
renderer-software = ["i-slint-backend-winit?/renderer-software", "i-slint-core/software-renderer"]

rtti = ["i-slint-core/rtti", "i-slint-backend-qt?/rtti"]
accessibility = ["i-slint-backend-winit?/accessibility"]

raw-window-handle-06 = ["i-slint-core/raw-window-handle-06", "i-slint-backend-winit?/raw-window-handle-06"]

# note that default enable the i-slint-backend-qt, but not its enable feature
default = ["i-slint-backend-qt", "backend-winit"]

[dependencies]
cfg-if = "1"
i-slint-core = { workspace = true }

[target.'cfg(not(target_os = "android"))'.dependencies]
i-slint-backend-winit = { workspace = true, features = ["default"], optional = true }
i-slint-renderer-skia = { workspace = true, optional = true }

[target.'cfg(not(target_os = "wasm"))'.dependencies]
i-slint-backend-qt = { workspace = true, optional = true }

[target.'cfg(target_os = "linux")'.dependencies]
i-slint-backend-linuxkms = { workspace = true, features = ["default"], optional = true }

[build-dependencies]
i-slint-common = { workspace = true }
