# 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"
name = "cfait"
version = "1.0.4"
build = "build.rs"
exclude = [
    ".github/*",
    ".forgejo/*",
    ".gitignore",
    "packaging/*",
    "about.hbs",
    "about.toml",
    "cliff.toml",
    "RUST_DEPENDENCIES.html",
    "android/*",
    "fastlane/*",
    "com.trougnouf.Cfait.yml",
    "scripts/*",
    "cargo-sources.yml",
    "LICENSES/*",
    "secrets/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "cfait"
description = "Powerful, fast and elegant task / TODO manager. (GUI & TUI, CalDAV & local)"
homepage = "https://codeberg.org/trougnouf/cfait"
readme = "README.md"
keywords = [
    "caldav",
    "todo",
    "productivity",
    "tui",
    "gui",
]
categories = [
    "command-line-utilities",
    "gui",
    "network-programming",
    "database",
]
license = "GPL-3.0-or-later"
repository = "https://codeberg.org/trougnouf/cfait"

[package.metadata.deb]
maintainer = "Benoit Brummer (Trougnouf) <trougnouf@disroot.org>"
copyright = "2026, Benoit Brummer (Trougnouf)"
license-file = [
    "LICENSE",
    "4",
]
extended-description = """
Cfait is a powerful yet simple tasks / TODO CalDAV client. (TUI and GUI)
"""
depends = "$auto, libsecret-1-0, libvulkan1"
section = "utils"
priority = "optional"
assets = [
    [
    "target/release/cfait",
    "usr/bin/",
    "755",
],
    [
    "target/release/cfait-gui",
    "usr/bin/cfait-gui",
    "755",
],
    [
    "assets/cfait.desktop",
    "usr/share/applications/",
    "644",
],
    [
    "assets/cfait.svg",
    "usr/share/icons/hicolor/scalable/apps/cfait.svg",
    "644",
],
]

[package.metadata.release]
pre-release-hook = [
    "python3",
    "scripts/prepare_release.py",
]

[[package.metadata.release.pre-release-replacements]]
file = "packaging/arch/PKGBUILD"
search = 'pkgver=[0-9\.]+'
replace = "pkgver={{version}}"

[package.metadata.android]
version_code = 10004

[features]
default = ["tui"]
gui = [
    "dep:iced",
    "dep:iced_aw",
    "dep:rfd",
]
mobile = [
    "dep:uniffi",
    "dep:uniffi_bindgen",
]
test_hooks = []
tui = [
    "dep:ratatui",
    "dep:crossterm",
    "dep:rpassword",
    "dep:tui-markdown",
]

[lib]
name = "cfait"
crate-type = [
    "lib",
    "cdylib",
]
path = "src/lib.rs"

[[bin]]
name = "cfait"
path = "src/bin/tui.rs"
required-features = ["tui"]

[[bin]]
name = "cfait-gui"
path = "src/bin/gui.rs"
required-features = ["gui"]

[[bin]]
name = "inspect_bindgen"
path = "tools/inspect_bindgen.rs"
required-features = ["mobile"]

[[bin]]
name = "uniffi-bindgen"
path = "src/bin/uniffi-bindgen.rs"
required-features = ["mobile"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.anyhow]
version = "1.0"

[dependencies.base64]
version = "0.22"

[dependencies.camino]
version = "1.0"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.crossterm]
version = "0.29"
optional = true

[dependencies.digest_auth]
version = "0.3"

[dependencies.directories]
version = "6.0"

[dependencies.fastrand]
version = "2.3"

[dependencies.fs2]
version = "0.4"

[dependencies.futures]
version = "0.3"

[dependencies.http]
version = "1.4"

[dependencies.hyper-rustls]
version = "0.27"
features = ["native-tokio"]

[dependencies.hyper-util]
version = "0.1"
features = [
    "client",
    "client-legacy",
    "http1",
    "tokio",
]

[dependencies.icalendar]
version = "0.17"

[dependencies.iced]
version = "0.14.0"
features = [
    "tokio",
    "svg",
    "advanced",
    "image",
]
optional = true

[dependencies.iced_aw]
version = "0.14"
features = ["color_picker"]
optional = true

[dependencies.isolang]
version = "2.4.0"
features = [
    "local_names",
    "english_names",
]

[dependencies.keyring-core]
version = "1.0.0"

[dependencies.libdav]
version = "0.10"

[dependencies.log]
version = "0.4"

[dependencies.notify-rust]
version = "4"

[dependencies.once_cell]
version = "1.18"

[dependencies.percent-encoding]
version = "2.3"

[dependencies.ratatui]
version = "0.30"
optional = true

[dependencies.rfd]
version = "0.17"
features = ["xdg-portal"]
optional = true
default-features = false

[dependencies.roxmltree]
version = "0.21"

[dependencies.rpassword]
version = "7.4"
optional = true

[dependencies.rrule]
version = "0.14"

[dependencies.rust-i18n]
version = "4"

[dependencies.rustls]
version = "0.23"
features = [
    "std",
    "tls12",
]
default-features = false

[dependencies.rustls-native-certs]
version = "0.8"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.simplelog]
version = "0.12"

[dependencies.strum]
version = "0.28"
features = ["derive"]

[dependencies.sys-locale]
version = "0.3"

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.toml]
version = "1.0"

[dependencies.tower]
version = "0.5"
features = ["util"]

[dependencies.tower-http]
version = "0.6"
features = ["auth"]

[dependencies.tower-layer]
version = "0.3"

[dependencies.tower-service]
version = "0.3"

[dependencies.tui-markdown]
version = "0.3"
optional = true

[dependencies.unicode-width]
version = "0.2"

[dependencies.uniffi]
version = "0.31"
features = [
    "tokio",
    "build",
    "cli",
]
optional = true

[dependencies.uniffi_bindgen]
version = "0.31"
optional = true

[dependencies.uniffi_meta]
version = "0.31"

[dependencies.uuid]
version = "1.19"
features = ["v4"]

[dev-dependencies.mockito]
version = "1.7"

[dev-dependencies.serial_test]
version = "3.0"

[dev-dependencies.tokio]
version = "1"
features = ["full"]

[dev-dependencies.uniffi_meta]
version = "0.31"

[dev-dependencies.uuid]
version = "1.19"
features = ["v4"]

[build-dependencies.winresource]
version = "0.1"

[target.'cfg(target_os = "android")'.dependencies.android-native-keyring-store]
version = "1.0.0"

[target.'cfg(target_os = "android")'.dependencies.android_logger]
version = "0.15"

[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.22"

[target.'cfg(target_os = "android")'.dependencies.log]
version = "0.4"

[target.'cfg(target_os = "android")'.dependencies.ndk-context]
version = "0.1"

[target.'cfg(target_os = "android")'.dependencies.webpki-roots]
version = "1.0"

[target.'cfg(target_os = "android")'.dependencies.zip]
version = "8.1"

[target.'cfg(target_os = "linux")'.dependencies.linux-keyutils-keyring-store]
version = "1.0.0"

[target.'cfg(target_os = "linux")'.dependencies.oo7]
version = "0.6"

[target.'cfg(target_os = "macos")'.dependencies.apple-native-keyring-store]
version = "1.0.0"
features = ["keychain"]

[target.'cfg(target_os = "windows")'.dependencies.os_info]
version = "3"

[target.'cfg(target_os = "windows")'.dependencies.windows-native-keyring-store]
version = "1.0.0"

[profile.release]
lto = true
codegen-units = 1
strip = true
