mirror of
https://github.com/facebook/sapling.git
synced 2024-10-05 14:28:17 +03:00
b09140b832
Summary: This is the start of the codemod for https://fb.workplace.com/groups/rust.language/posts/25780668961555042. It follows the same approach as {D53374511} by adding a comment above the re-exports to identify the correct Buck target to use instead. This way I can codemod all uses by locally changing the comment into a real `#[deprecated = "..."]` attribute, compiling all Rust targets with `-Awarnings -Wdeprecated` in rustflags, parsing the deprecation warnings, and programmatically applying the correct fix. Note that the deprecation needs to be on a `pub mod` rather than a `pub use` because deprecation on re-exports is not supported by Rust. Reviewed By: zertosh Differential Revision: D54332814 fbshipit-source-id: 16358f211032a7b1a701c08d909078b86b53d65f
72 lines
2.2 KiB
Rust
72 lines
2.2 KiB
Rust
// @generated by autocargo
|
|
use std::env;
|
|
use std::fs;
|
|
use std::path::Path;
|
|
|
|
use thrift_compiler::Config;
|
|
use thrift_compiler::GenContext;
|
|
|
|
#[rustfmt::skip]
|
|
fn main() {
|
|
// Rerun if this gets rewritten.
|
|
println!("cargo:rerun-if-changed=thrift_build.rs");
|
|
|
|
let out_dir = env::var_os("OUT_DIR").expect("OUT_DIR env not provided");
|
|
let out_dir: &Path = out_dir.as_ref();
|
|
fs::write(
|
|
out_dir.join("cratemap"),
|
|
"eden_config crate //eden/fs/config:config_thrift-rust",
|
|
).expect("Failed to write cratemap");
|
|
|
|
let conf = {
|
|
let mut conf = Config::from_env(GenContext::Lib).expect("Failed to instantiate thrift_compiler::Config");
|
|
|
|
let path_from_manifest_to_base: &Path = "../../..".as_ref();
|
|
let cargo_manifest_dir =
|
|
env::var_os("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not provided");
|
|
let cargo_manifest_dir: &Path = cargo_manifest_dir.as_ref();
|
|
let base_path = cargo_manifest_dir
|
|
.join(path_from_manifest_to_base)
|
|
.canonicalize()
|
|
.expect("Failed to canonicalize base_path");
|
|
// TODO: replace canonicalize() with std::path::absolute() when
|
|
// https://github.com/rust-lang/rust/pull/91673 is available (~Rust 1.60)
|
|
// and remove this block.
|
|
#[cfg(windows)]
|
|
let base_path = Path::new(
|
|
base_path
|
|
.as_path()
|
|
.to_string_lossy()
|
|
.trim_start_matches(r"\\?\"),
|
|
)
|
|
.to_path_buf();
|
|
|
|
conf.base_path(base_path);
|
|
|
|
conf.types_crate("config_thrift__types");
|
|
conf.clients_crate("config_thrift__clients");
|
|
conf.services_crate("config_thrift__services");
|
|
|
|
let options = "deprecated_default_enum_min_i32";
|
|
if !options.is_empty() {
|
|
conf.options(options);
|
|
}
|
|
|
|
let lib_include_srcs = vec![
|
|
|
|
];
|
|
let types_include_srcs = vec![
|
|
|
|
];
|
|
conf.lib_include_srcs(lib_include_srcs);
|
|
conf.types_include_srcs(types_include_srcs);
|
|
|
|
conf
|
|
};
|
|
|
|
let srcs: &[&str] = &[
|
|
"eden_config.thrift"
|
|
];
|
|
conf.run(srcs).expect("Failed while running thrift compilation");
|
|
}
|