cargo/Cargo.toml

92 lines
1.8 KiB
TOML
Raw Normal View History

[package]
2014-07-16 00:51:49 +00:00
name = "cargo"
2018-02-26 15:35:03 +00:00
version = "0.27.0"
2014-07-16 00:51:49 +00:00
authors = ["Yehuda Katz <wycats@gmail.com>",
2014-11-13 23:08:17 +00:00
"Carl Lerche <me@carllerche.com>",
"Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
homepage = "https://crates.io"
repository = "https://github.com/rust-lang/cargo"
documentation = "https://docs.rs/cargo"
description = """
Cargo, a package manager for Rust.
"""
2014-07-16 00:51:49 +00:00
2014-08-16 20:00:46 +00:00
[lib]
2014-07-16 00:51:49 +00:00
name = "cargo"
path = "src/cargo/lib.rs"
2014-12-19 03:01:37 +00:00
[dependencies]
atty = "0.2"
2018-02-26 15:35:03 +00:00
crates-io = { path = "src/crates-io", version = "0.16" }
crossbeam = "0.3"
2017-09-27 12:14:55 +00:00
crypto-hash = "0.3"
curl = "0.4.6"
env_logger = "0.5"
failure = "0.1.1"
filetime = "0.1"
flate2 = "1.0"
fs2 = "0.4"
2018-02-27 13:14:38 +00:00
git2 = "0.7.0"
git2-curl = "0.8"
glob = "0.2"
2018-01-02 19:35:32 +00:00
hex = "0.3"
home = "0.3"
ignore = "0.4"
lazy_static = "1.0.0"
jobserver = "0.1.9"
2018-02-12 18:33:31 +00:00
lazycell = "0.6"
libc = "0.2"
2018-02-27 13:14:38 +00:00
libgit2-sys = "0.7"
log = "0.4"
num_cpus = "1.0"
same-file = "1"
semver = { version = "0.9.0", features = ["serde"] }
serde = "1.0"
serde_derive = "1.0"
serde_ignored = "0.0.4"
Add a GNU make jobserver implementation to Cargo This commit adds a GNU make jobserver implementation to Cargo, both as a client of existing jobservers and also a creator of new jobservers. The jobserver is actually just an IPC semaphore which manifests itself as a pipe with N bytes of tokens on Unix and a literal IPC semaphore on Windows. The rough protocol is then if you want to run a job you read acquire the semaphore (read a byte on Unix or wait on the semaphore on Windows) and then you release it when you're done. All the hairy details of the jobserver implementation are housed in the `jobserver` crate on crates.io instead of Cargo. This should hopefully make it much easier for the compiler to also share a jobserver implementation eventually. The main tricky bit here is that on Unix and Windows acquiring a jobserver token will block the calling thread. We need to either way for a running job to exit or to acquire a new token when we want to spawn a new job. To handle this the current implementation spawns a helper thread that does the blocking and sends a message back to Cargo when it receives a token. It's a little trickier with shutting down this thread gracefully as well but more details can be found in the `jobserver` crate. Unfortunately crates are unlikely to see an immediate benefit of this once implemented. Most crates are run with a manual `make -jN` and this overrides the jobserver in the environment, creating a new jobserver in the sub-make. If the `-jN` argument is removed, however, then `make` will share Cargo's jobserver and properly limit parallelism. Closes #1744
2017-05-30 04:09:53 +00:00
serde_json = "1.0"
shell-escape = "0.1"
tar = { version = "0.4", default-features = false }
tempdir = "0.3"
termcolor = "0.3"
toml = "0.4"
2016-03-02 15:37:44 +00:00
url = "1.1"
clap = "2.31.2"
# Not actually needed right now but required to make sure that rls/cargo build
# with the same set of features in rust-lang/rust
num-traits = "0.2" # enable the default feature
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation = { version = "0.5.1", features = ["mac_os_10_7_support"] }
[target.'cfg(windows)'.dependencies]
miow = "0.3"
2018-01-03 19:25:28 +00:00
[target.'cfg(windows)'.dependencies.winapi]
version = "0.3"
features = [
"handleapi",
"jobapi",
"jobapi2",
"minwindef",
"ntdef",
"processenv",
"processthreadsapi",
"psapi",
"synchapi",
"winerror",
"winbase",
"wincon",
"winnt",
]
[dev-dependencies]
bufstream = "0.1"
2014-07-16 00:51:49 +00:00
[[bin]]
name = "cargo"
test = false
2014-08-14 21:54:56 +00:00
doc = false