1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-09-11 12:30:43 +03:00
Files
Alex Hornby fa26d2a99b improve crate vendoring (#110)
Summary:
Pull Request resolved: https://github.com/facebookexperimental/eden/pull/110

Pull Request resolved: https://github.com/facebookexperimental/rust-shed/pull/27

Make it so that changes to rust-shed or other common rust source are used locally vendored, so they don't need to be pushed to github before they are visible in a build.

There was already some support for cargo vendoring in getdeps, but it was limited to dependencies between manifests built with cargo builder.  This wasn't enough to build something like eden (cmake is main entry point, with later calls cargo) or eden_scm (make is main entry point, with later calls to cargo), so this diff adds a cargo prepare step for getdeps other primary build systems.

The cargo vendoring is done by using a cargo config file to point to the source files used by getdeps.  It has two modes:

1. per crate, existing mode which is already automatic for cargo to cargo manifest dependencies.  To use it for a non cargo build manifest, add crate.pathmap
2. per git url, existing mode which was only use for crates.io third-party crates, now can be enabled by setting cargo.cargo_config_file

Reviewed By: yancouto

Differential Revision: D33895469

fbshipit-source-id: 7b13c0b679532492a336ce217de875c25fe1be90
2022-02-16 01:09:01 -08:00

36 lines
652 B
Plaintext

[manifest]
name = rust-shed
fbsource_path = fbcode/common/rust/shed
shipit_project = rust-shed
shipit_fbcode_builder = true
[git]
repo_url = https://github.com/facebookexperimental/rust-shed.git
[build]
builder = cargo
[cargo]
build_doc = true
workspace_dir =
[shipit.pathmap]
fbcode/common/rust/shed = shed
fbcode/common/rust/shed/public_autocargo = shed
fbcode/common/rust/shed/public_tld = .
tools/rust/ossconfigs = .
[shipit.strip]
^fbcode/common/rust/shed/(?!public_autocargo|public_tld).+/Cargo\.toml$
[dependencies]
fbthrift
fb303
# We use the system openssl on linux
[dependencies.not(os=linux)]
openssl
[dependencies.fbsource=on]
rust