native-theme 0.6.0

Cross-platform native theme detection and loading for Rust GUI applications
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88.0"
name = "native-theme"
version = "0.6.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cross-platform native theme detection and loading for Rust GUI applications"
homepage = "https://github.com/tiborgats/native-theme"
readme = "README.md"
keywords = [
    "theme",
    "gui",
    "native",
    "colors",
    "desktop",
]
categories = [
    "gui",
    "config",
    "os",
]
license = "MIT OR Apache-2.0 OR 0BSD"
repository = "https://github.com/tiborgats/native-theme"

[package.metadata.docs.rs]
all-features = true
targets = [
    "x86_64-unknown-linux-gnu",
    "x86_64-apple-darwin",
    "x86_64-pc-windows-msvc",
]

[features]
kde = ["dep:configparser"]
linux = [
    "linux-kde",
    "linux-portal",
]
linux-kde = ["kde"]
linux-portal = ["portal"]
lucide-icons = []
macos = [
    "dep:objc2",
    "dep:objc2-foundation",
    "dep:objc2-app-kit",
    "dep:block2",
    "dep:objc2-core-foundation",
]
material-icons = []
native = [
    "linux",
    "macos",
    "windows",
]
portal = [
    "dep:ashpd",
    "ashpd/async-io",
    "dep:zbus",
]
svg-rasterize = ["dep:resvg"]
system-fonts = [
    "dep:fontdb",
    "dep:objc2-core-text",
    "dep:objc2-core-foundation",
]
system-icons = [
    "dep:freedesktop-icons",
    "dep:objc2",
    "dep:objc2-app-kit",
    "dep:objc2-core-foundation",
    "dep:objc2-core-graphics",
    "dep:objc2-foundation",
    "dep:png",
    "dep:windows",
    "material-icons",
]
watch = [
    "dep:notify",
    "zbus?/blocking-api",
]
windows = ["dep:windows"]

[lib]
name = "native_theme"
path = "src/lib.rs"

[[test]]
name = "icon_sources"
path = "tests/icon_sources.rs"

[[test]]
name = "merge_behavior"
path = "tests/merge_behavior.rs"

[[test]]
name = "platform_facts_xref"
path = "tests/platform_facts_xref.rs"

[[test]]
name = "prelude_smoke"
path = "tests/prelude_smoke.rs"

[[test]]
name = "preset_loading"
path = "tests/preset_loading.rs"

[[test]]
name = "proptest_roundtrip"
path = "tests/proptest_roundtrip.rs"

[[test]]
name = "reader_kde"
path = "tests/reader_kde.rs"

[[test]]
name = "resolve_and_validate"
path = "tests/resolve_and_validate.rs"

[[test]]
name = "serde_roundtrip"
path = "tests/serde_roundtrip.rs"

[dependencies.arc-swap]
version = "1.9.2"

[dependencies.async-trait]
version = "0.1.92"

[dependencies.fontdb]
version = "0.23"
features = [
    "fs",
    "fontconfig",
    "memmap",
]
optional = true
default-features = false

[dependencies.inventory]
version = "0.3.24"

[dependencies.native-theme-derive]
version = "0.6.0"

[dependencies.resvg]
version = "0.48.1"
optional = true
default-features = false

[dependencies.serde]
version = "1.0.229"
features = [
    "derive",
    "rc",
]

[dependencies.serde_with]
version = "3.22.0"

[dependencies.toml]
version = "1.1.5"

[dependencies.unicase]
version = "2.9"

[dev-dependencies.pollster]
version = "1.0"

[dev-dependencies.proptest]
version = "1.11"

[dev-dependencies.serde_json]
version = "1.0.151"

[target.'cfg(target_os = "linux")'.dependencies.ashpd]
version = "0.13.13"
features = ["settings"]
optional = true
default-features = false

[target.'cfg(target_os = "linux")'.dependencies.configparser]
version = "3.2.0"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.freedesktop-icons]
version = "0.4"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.notify]
version = "8.2"
optional = true
default-features = false

[target.'cfg(target_os = "linux")'.dependencies.png]
version = "0.18.1"
optional = true
default-features = false

[target.'cfg(target_os = "linux")'.dependencies.pollster]
version = "1.0"

[target.'cfg(target_os = "linux")'.dependencies.zbus]
version = "5.19.0"
optional = true
default-features = false

[target.'cfg(target_os = "macos")'.dependencies.block2]
version = ">=0.6.2, <0.8.0"
optional = true

[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6.4"
optional = true

[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.3.2"
features = [
    "NSColor",
    "NSColorSpace",
    "NSAppearance",
    "NSFont",
    "NSFontDescriptor",
    "NSScroller",
    "objc2-core-foundation",
    "NSImage",
    "NSImageRep",
    "NSGraphicsContext",
    "objc2-core-graphics",
    "NSWorkspace",
    "NSAccessibility",
]
optional = true

[target.'cfg(target_os = "macos")'.dependencies.objc2-core-foundation]
version = "0.3.2"
features = [
    "CFCGTypes",
    "CFRunLoop",
    "CFDate",
    "CFURL",
]
optional = true

[target.'cfg(target_os = "macos")'.dependencies.objc2-core-graphics]
version = "0.3.2"
features = [
    "CGBitmapContext",
    "CGColorSpace",
    "CGContext",
    "CGGeometry",
    "CGImage",
]
optional = true

[target.'cfg(target_os = "macos")'.dependencies.objc2-core-text]
version = "0.3.2"
features = [
    "CTFont",
    "CTFontDescriptor",
    "CTFontTraits",
]
optional = true

[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3.2"
features = [
    "NSString",
    "NSUserDefaults",
    "NSDistributedNotificationCenter",
    "NSNotification",
    "NSRunLoop",
    "NSOperation",
    "block2",
]
optional = true

[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62.2"
features = [
    "UI_ViewManagement",
    "Win32_UI_WindowsAndMessaging",
    "Win32_UI_Accessibility",
    "Win32_UI_HiDpi",
    "Win32_Graphics_Gdi",
    "Win32_Graphics_Dwm",
    "Win32_UI_Shell",
    "Foundation_Metadata",
    "Win32_System_Com",
    "Win32_System_Threading",
]
optional = true
default-features = false