[package]
name = "nih_plug"
version = "0.0.0"
edition = "2021"
authors = ["Robbert van der Helm <mail@robbertvanderhelm.nl>"]
license = "ISC"

keywords = ["audio", "plugin", "vst", "vst3"]
description = "A simple but modern API-agnostic audio plugin framework"
repository = "https://github.com/robbert-vdh/nih-plug"

[workspace]
members = [
  "nih_plug_derive",
  "nih_plug_egui",
  "nih_plug_iced",
  "nih_plug_vizia",
  "nih_plug_xtask",

  "cargo_nih_plug",
  "xtask",

  "plugins/examples/gain",
  "plugins/examples/gain-gui-egui",
  "plugins/examples/gain-gui-iced",
  "plugins/examples/gain-gui-vizia",
  "plugins/examples/sine",
  "plugins/examples/stft",

  "plugins/crisp",
  "plugins/diopser",
  "plugins/puberty_simulator",
]

[features]
default = []
# Enabling this feature will cause the plugin to terminate when allocations
# occur in the processing function while compiling in debug mode.
assert_process_allocs = ["assert_no_alloc"]
# Add adapters to the Buffer object for reading the channel data to and from
# `std::simd` vectors. Requires a nightly compiler.
simd = []

[dependencies]
nih_plug_derive = { path = "nih_plug_derive" }

atomic_float = "0.1"
atomic_refcell = "0.1"
bitflags = "1.3"
cfg-if = "1.0"
# For CLAP 0.23
clap-sys = { git = "https://github.com/glowcoil/clap-sys" }
crossbeam = "0.8"
lazy_static = "1.4"
parking_lot = "0.12"
raw-window-handle = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
vst3-sys = { git = "https://github.com/RustAudio/vst3-sys.git" }
widestring = "1.0.0-beta.1"

assert_no_alloc = { version = "1.1", optional = true }

[target.'cfg(windows)'.dependencies.windows]
version = "0.32"
features = [
  "Win32_Foundation",
  "Win32_Graphics_Gdi",
  "Win32_UI_WindowsAndMessaging",
  "Win32_System_LibraryLoader",
  "Win32_System_Performance",
]

[profile.release]
lto = "thin"
strip = "symbols"