60 lines
1.5 KiB
Rust
60 lines
1.5 KiB
Rust
use std::env::home_dir;
|
|
use std::process::Command;
|
|
|
|
fn main() -> std::io::Result<()> {
|
|
println!("cargo::rerun-if-changed=build.rs");
|
|
#[cfg(all(target_os = "macos", feature = "debug"))]
|
|
{
|
|
install_bevy_cef_debug_render_process()?;
|
|
install_export_cef_dir()?;
|
|
export_cef_dir()?;
|
|
}
|
|
Ok(())
|
|
}
|
|
|
|
fn install_bevy_cef_debug_render_process() -> std::io::Result<()> {
|
|
let bevy_cef_render_process_path = home_dir()
|
|
.unwrap()
|
|
.join(".cargo")
|
|
.join("bin")
|
|
.join("bevy_cef_debug_render_process");
|
|
if !bevy_cef_render_process_path.exists() {
|
|
Command::new("cargo")
|
|
.args(["install", "bevy_cef_debug_render_process"])
|
|
.spawn()?;
|
|
}
|
|
Ok(())
|
|
}
|
|
|
|
fn install_export_cef_dir() -> std::io::Result<()> {
|
|
let export_cef_dir_path = home_dir()
|
|
.unwrap()
|
|
.join(".cargo")
|
|
.join("bin")
|
|
.join("export-cef-dir");
|
|
if !export_cef_dir_path.exists() {
|
|
Command::new("cargo")
|
|
.args(["install", "export-cef-dir"])
|
|
.spawn()?;
|
|
}
|
|
Ok(())
|
|
}
|
|
|
|
fn export_cef_dir() -> std::io::Result<()> {
|
|
let cef_dir = home_dir().unwrap().join(".local").join("share").join("cef");
|
|
if cef_dir.exists() {
|
|
return Ok(());
|
|
}
|
|
let export_cef_dir_path = home_dir()
|
|
.unwrap()
|
|
.join(".cargo")
|
|
.join("bin")
|
|
.join("export-cef-dir");
|
|
Command::new(export_cef_dir_path)
|
|
.arg("--force")
|
|
.arg(cef_dir)
|
|
.spawn()?
|
|
.wait()?;
|
|
Ok(())
|
|
}
|