[package]
name = "pixiv_downloader"
version = "0.0.1"
edition = "2021"

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

[dependencies]
anyhow = { version = "1.0", optional = true }
async-trait = { version = "0.1", optional = true }
base64 = { version = "0.21", optional = true }
bytes = { version = "1.4", optional = true }
c_fixed_string = { version = "0.2", optional = true }
cfg-if = "1"
chrono = { version = "0.4", features = ["serde"] }
dateparser = "0.2.0"
derive_builder = "0.20"
derive_more = "0.99"
derive_setters = "0.1"
fancy-regex = "0.11"
flagset = { version = "0.4", optional = true }
futures-util = "0.3"
getopts = "0.2"
gettext = "0.4"
hex = { version = "0.4", optional = true }
html5ever = "*"
http = "0.2"
http-content-range = "0.1"
hyper = { version="0.14", features = ["server"], optional = true }
indicatif = "0.17.3"
int-enum = "0.5"
is-terminal = "0.4"
itertools = "0.10"
json = "0.12"
lazy_static = "1.4"
log = "*"
log4rs = "1"
markup5ever_rcdom = "0.3"
md5 = "0.7"
modular-bitfield = "0.11"
multipart = { features = ["server"], git = 'https://github.com/lifegpc/multipart', optional = true, default-features = false }
openssl = { version = "0.10", optional = true }
parse-size = "1"
percent-encoding = "*"
proc_macros = { path = "proc_macros" }
rand = { version = "0", optional = true }
regex = "1"
reqwest = { version = "0.11", features = ["brotli", "deflate", "gzip", "multipart", "socks", "stream"] }
rusqlite = { version = "0.29", features = ["bundled", "chrono"], optional = true }
RustyXML = "0.3"
serde = "1"
serde_json = "1"
serde_urlencoded = { version = "*", optional = true }
tokio = { version = "1.27", features = ["rt", "macros", "rt-multi-thread", "time"] }
url = "2.3"
urlparse = "0.7"
utf16string = { version= "0.2", optional = true }

[build-dependencies]
bindgen = { version = "0.64", optional = true }
cmake = { version = "0.1", optional = true }

[features]
all = ["db", "db_sqlite", "exif", "ugoira", "server"]
avdict = ["bindgen", "cmake", "flagset"]
db = ["anyhow", "async-trait", "bytes", "flagset"]
db_all = ["db", "db_sqlite"]
db_sqlite = ["rusqlite"]
docker = []
exif = ["bindgen", "c_fixed_string", "cmake", "link-cplusplus", "utf16string"]
server = ["async-trait", "base64", "db", "hex", "hyper", "multipart", "openssl", "rand", "serde_urlencoded"]
ugoira = ["avdict", "bindgen", "cmake", "link-cplusplus"]

[patch.crates-io]
async-trait = { git = "https://github.com/lifegpc/async-trait" }
buf_redux = { git = "https://github.com/lifegpc/buf_redux" }
openssl = { git = "https://github.com/lifegpc/rust-openssl" }
openssl-sys = { git = "https://github.com/lifegpc/rust-openssl" }
native-tls = { git = "https://github.com/lifegpc/rust-native-tls" }
tempfile = { git = "https://github.com/Stebalien/tempfile" }

[profile.release-with-debug]
inherits = "release"
debug = true

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3.9", features = ["winnls", "stringapiset"] }

[target.'cfg(windows)'.build-dependencies]
parse-size = "1"

[target.'cfg(target_env = "gnu")'.dependencies]
link-cplusplus = { version = "1.0", features = ["libstdc++"], optional = true }
