[package]
name = "{{project-name}}"
version = "0.1.0"
edition = "2021"

license.workspace = true

[dependencies]
{{project-name}}-common = { path = "../{{project-name}}-common", features = ["user"] }

anyhow = { workspace = true, default-features = true }
aya = { workspace = true }
aya-log = { workspace = true }
env_logger = { workspace = true }
libc = { workspace = true }
log = { workspace = true }
tokio = { workspace = true, features = [
    "macros",
    "rt",
    "rt-multi-thread",
    "net",
    "signal",
] }
{% if program_types_with_opts contains program_type -%}
clap = { workspace = true, features = ["derive"] }
{% endif -%}

[build-dependencies]
anyhow = { workspace = true }
aya-build = { workspace = true }
# TODO(https://github.com/rust-lang/cargo/issues/12375): this should be an artifact dependency, but
# it's not possible to tell cargo to use `-Z build-std` to build it. We cargo-in-cargo in the build
# script to build this, but we want to teach cargo about the dependecy so that cache invalidation
# works properly.
#
# Note also that https://github.com/rust-lang/cargo/issues/10593 occurs when `target = ...` is added
# to an artifact dependency; it seems possible to work around that by setting `resolver = "1"` in
# Cargo.toml in the workspace root.
#
# Finally note that *any* usage of `artifact = ...` in *any* Cargo.toml in the workspace breaks
# workflows with stable cargo; stable cargo outright refuses to load manifests that use unstable
# features.
{{project-name}}-ebpf = { path = "../{{project-name}}-ebpf" }

[[bin]]
name = "{{project-name}}"
path = "src/main.rs"