use std::path::PathBuf;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct BuildGraph {
pub actions: Vec<Action>,
pub default_outputs: Vec<PathBuf>,
pub compile_commands: Vec<CompileCommand>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Action {
pub kind: ActionKind,
pub inputs: Vec<PathBuf>,
pub implicit_inputs: Vec<PathBuf>,
pub outputs: Vec<PathBuf>,
pub depfile: Option<PathBuf>,
pub command: Vec<String>,
pub description: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ActionKind {
CompileC,
CompileCpp,
ArchiveStaticLibrary,
LinkExecutable,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct CompileCommand {
pub directory: PathBuf,
pub file: PathBuf,
pub arguments: Vec<String>,
pub output: PathBuf,
}