[package]
name = "epics-rs"
version.workspace = true
edition.workspace = true
description = "Pure Rust EPICS control system framework"
license-file = "LICENSE"
authors.workspace = true
repository.workspace = true

[dependencies]
epics-base-rs = { workspace = true }
epics-ca-rs = { workspace = true, optional = true }
epics-pva-rs = { workspace = true, optional = true }
epics-bridge-rs = { workspace = true, optional = true }
asyn-rs = { workspace = true, optional = true }
motor-rs = { workspace = true, optional = true }
ad-core-rs = { workspace = true, optional = true }
ad-plugins-rs = { workspace = true, optional = true }
std-rs = { workspace = true, optional = true }
scaler-rs = { workspace = true, optional = true }
optics-rs = { workspace = true, optional = true }

[features]
default = ["ca"]
ca = ["dep:epics-ca-rs"]
pva = ["dep:epics-pva-rs"]
bridge = ["dep:epics-bridge-rs", "pva"]
asyn = ["dep:asyn-rs"]
motor = ["dep:asyn-rs", "dep:motor-rs"]
ad = ["dep:asyn-rs", "dep:ad-core-rs", "dep:ad-plugins-rs"]
ioc = ["ad", "ad-plugins-rs/ioc"]
# calc, autosave, and busy are always available through epics-base-rs
calc = []
autosave = []
busy = []
std = ["dep:std-rs"]
scaler = ["dep:scaler-rs"]
optics = ["dep:optics-rs"]
full = ["ca", "pva", "bridge", "asyn", "motor", "ad", "ioc", "calc", "autosave", "busy", "std", "scaler", "optics"]
