use std::{env, path::PathBuf};
mod moc;
pub use moc::{MocArguments, MocProducts, QtToolMoc};
mod qmlcachegen;
pub use qmlcachegen::{QmlCacheArguments, QmlCacheProducts, QtToolQmlCacheGen};
mod qmltyperegistrar;
pub use qmltyperegistrar::QtToolQmlTypeRegistrar;
mod qtpaths;
pub use qtpaths::{QtPathsQueryArguments, QtToolQtPaths};
mod rcc;
pub use rcc::QtToolRcc;
#[non_exhaustive]
#[derive(Eq, Hash, PartialEq)]
pub enum QtTool {
Moc,
Rcc,
QmlCacheGen,
QmlTypeRegistrar,
QtPaths,
}
impl QtTool {
pub(crate) fn binary_name(&self) -> &str {
match self {
Self::Moc => "moc",
Self::Rcc => "rcc",
Self::QmlCacheGen => "qmlcachegen",
Self::QmlTypeRegistrar => "qmltyperegistrar",
Self::QtPaths => "qtpaths",
}
}
pub(crate) fn writable_path(&self) -> PathBuf {
PathBuf::from(env::var("OUT_DIR").expect("OUT_DIR was not set")).join(self.binary_name())
}
}