[package]
name = "rustdesk"
version = "1.1.8"
authors = ["rustdesk <info@rustdesk.com>"]
edition = "2018"
build= "build.rs"
description = "A remote control software."

[features]
inline = []
cli = []
use_samplerate = ["samplerate"]
use_rubato = ["rubato"]
use_dasp = ["dasp"]
default = ["use_dasp"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
whoami = "1.2"
scrap = { path = "libs/scrap" }
hbb_common = { path = "libs/hbb_common" }
enigo = { path = "libs/enigo" }
sys-locale = "0.1"
serde_derive = "1.0"
serde = "1.0"
serde_json = "1.0"
cfg-if = "1.0"
lazy_static = "1.4"
sha2 = "0.10"
repng = "0.2"
libc = "0.2"
parity-tokio-ipc = { git = "https://github.com/open-trade/parity-tokio-ipc" }
flexi_logger = "0.22"
runas = "0.2"
magnum-opus = { git = "https://github.com/open-trade/magnum-opus" }
dasp = { version = "0.11", features = ["signal", "interpolate-linear", "interpolate"], optional = true }
rubato = { version = "0.10", optional = true }
samplerate = { version = "0.2", optional = true }
async-trait = "0.1"
crc32fast = "1.3"
uuid = { version = "0.8", features = ["v4"] }
clap = "3.0"
rpassword = "5.0"
base64 = "0.13"
sysinfo = "0.23"
num_cpus = "1.13"

[target.'cfg(not(any(target_os = "android")))'.dependencies]
cpal = { git = "https://github.com/open-trade/cpal" }

[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
machine-uid = "0.2"
mac_address = "1.1"
sciter-rs = { git = "https://github.com/open-trade/rust-sciter", branch = "dyn" }
ctrlc = "3.2"
arboard = "2.0"
clipboard-master = "3.1"
#rdev = { path = "../rdev" }
rdev = { git = "https://github.com/open-trade/rdev" }

[target.'cfg(target_os = "windows")'.dependencies]
systray = { git = "https://github.com/liyue201/systray-rs" }
winapi = { version = "0.3", features = ["winuser"] }
winreg = "0.10"
windows-service = "0.4"

[target.'cfg(target_os = "macos")'.dependencies]
objc = "0.2"
cocoa = "0.24"
dispatch = "0.2"
core-foundation = "0.9"
core-graphics = "0.22"
notify = "4.0.17"
include_dir = "0.7.2"
[target.'cfg(target_os = "linux")'.dependencies]
libpulse-simple-binding = "2.24"
libpulse-binding = "2.25"
rust-pulsectl = { git = "https://github.com/open-trade/pulsectl" }

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

[workspace]
members = ["libs/scrap", "libs/hbb_common", "libs/enigo"]

[package.metadata.winres]
LegalCopyright = "Copyright © 2020"
# this FileDescription overrides package.description
FileDescription = "RustDesk"

[target.'cfg(target_os="windows")'.build-dependencies]
winres = "0.1"
winapi = { version = "0.3", features = [ "winnt" ] }

[build-dependencies]
cc = "1.0"
hbb_common = { path = "libs/hbb_common" }

[dev-dependencies]
hound = "3.4"

[package.metadata.bundle]
name = "RustDesk"
identifier = "com.carriez.rustdesk"
icon = ["32x32.png", "128x128.png", "128x128@2x.png"]
deb_depends = ["libgtk-3-0", "libxcb-randr0", "libxdo3", "libxfixes3", "libxcb-shape0", "libxcb-xfixes0", "libasound2", "libsystemd0", "pulseaudio"]
osx_minimum_system_version = "10.14"

#https://github.com/johnthagen/min-sized-rust
#!!! rembember call "strip target/release/rustdesk"
# which reduce binary size a lot
[profile.release]
#lto = true
#codegen-units = 1
#panic = 'abort'
#opt-level = 'z' # only have smaller size after strip
