tea-runtime-codec 0.3.0-dev.7

The TEA SDK
#[cfg(feature = "vmh")]
use std::{
	env, fs,
	path::{Path, PathBuf},
};

#[cfg(feature = "vmh")]
fn main() {
	let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("'CARGO_MANIFEST_DIR' is not set");
	let include_path = Path::new(&manifest_dir).join("proto");

	let proto_files: Vec<PathBuf> = fs::read_dir(&include_path)
		.expect("failed to find include path")
		.map(|v| v.unwrap().path())
		.collect();

	println!("cargo:rerun-if-changed={}", include_path.to_str().unwrap());

	println!(
		"rebuild protobuf files (manifest dir: {}, include path: {:?}, proto files: {:?})...",
		manifest_dir,
		include_path.to_str(),
		proto_files
	);

	let mut out_path = PathBuf::from(env::var("OUT_DIR").expect("'OUT_DIR' is not set"));
	out_path.push("structs_proto");
	if !out_path.exists() {
		std::fs::create_dir_all(&out_path).expect("create proto out directory failed");
	}

	prost_build::Config::new()
		.out_dir(out_path)
		.compile_protos(&proto_files, &[include_path])
		.unwrap()
}

#[cfg(not(feature = "vmh"))]
fn main() {}