load("@fbcode_macros//build_defs:rust_library.bzl", "rust_library") oncall("sapling") rust_library( name = "dag", srcs = glob(["src/**/*.rs"]), autocargo = {"cargo_toml_config": { "dependencies_override": {"dependencies": { "sapling-dag-types": { "default-features": False, "features": [], }, "sapling-minibytes": { "default-features": False, "features": [], }, }}, "extra_buck_dependencies": {"dev-dependencies": [ "fbsource//third-party/rust:fs2", "fbsource//third-party/rust:tokio", "//eden/scm/lib/dag/dag-types:dag-types", "//eden/scm/lib/indexedlog:indexedlog", ]}, "features": { "default": [ "indexedlog-backend", "render", ], "indexedlog-backend": [ "fs2", "sapling-indexedlog", "tempfile", ], "render": ["sapling-renderdag"], }, "lib": {"name": "dag"}, "package": { "authors": ["Meta Source Control Team "], "description": "An implementation of a DAG used for source control.", "homepage": "https://sapling-scm.com/", "license": "MIT", "name": "sapling-dag", "repository": "https://github.com/facebook/sapling", }, }}, crate_root = "src/lib.rs", features = [ "indexedlog-backend", "render", ], test_deps = [ "fbsource//third-party/rust:once_cell", "fbsource//third-party/rust:quickcheck", "fbsource//third-party/rust:tempfile", "fbsource//third-party/rust:tokio", "//eden/scm/lib/dev-logger:dev-logger", "//eden/scm/lib/renderdag:renderdag", ], deps = [ "fbsource//third-party/rust:anyhow", "fbsource//third-party/rust:async-trait", "fbsource//third-party/rust:bitflags", "fbsource//third-party/rust:byteorder", "fbsource//third-party/rust:fail", "fbsource//third-party/rust:fs2", "fbsource//third-party/rust:futures", "fbsource//third-party/rust:indexmap", "fbsource//third-party/rust:rand", "fbsource//third-party/rust:serde", "fbsource//third-party/rust:tempfile", "fbsource//third-party/rust:thiserror", "fbsource//third-party/rust:tracing", "//eden/scm/lib/dag/dag-types:dag-types", "//eden/scm/lib/drawdag:drawdag", "//eden/scm/lib/indexedlog:indexedlog", "//eden/scm/lib/mincode:mincode", "//eden/scm/lib/minibytes:minibytes", "//eden/scm/lib/nonblocking:nonblocking", "//eden/scm/lib/renderdag:renderdag", "//eden/scm/lib/vlqencoding:vlqencoding", ], ) # The "-lite" variant does not dependent on indexedlog. It is suitable to be # used on the server side which does not have any local-disk accesses. # Note: unittests is disabled since it requires indexedlog. rust_library( name = "dag-lite", srcs = glob(["src/**/*.rs"]), autocargo = { "cargo_toml_config": { "lib": {"name": "dag"}, "package": { "authors": ["Meta Source Control Team "], "homepage": "https://sapling-scm.com/", "license": "MIT", "name": "sapling-dag", "repository": "https://github.com/facebook/sapling", }, }, "ignore_rule": True, }, crate = "dag", crate_root = "src/lib.rs", features = [ "render", ], unittests = False, deps = [ "fbsource//third-party/rust:anyhow", "fbsource//third-party/rust:async-trait", "fbsource//third-party/rust:bitflags", "fbsource//third-party/rust:byteorder", "fbsource//third-party/rust:fail", "fbsource//third-party/rust:futures", "fbsource//third-party/rust:indexmap", "fbsource//third-party/rust:rand", "fbsource//third-party/rust:serde", "fbsource//third-party/rust:thiserror", "fbsource//third-party/rust:tracing", "//eden/scm/lib/dag/dag-types:dag-types", "//eden/scm/lib/drawdag:drawdag", "//eden/scm/lib/minibytes:minibytes", "//eden/scm/lib/nonblocking:nonblocking", "//eden/scm/lib/renderdag:renderdag", "//eden/scm/lib/vlqencoding:vlqencoding", ], )