#include "gn/builtin_tool.h"
#include "base/logging.h"
#include "gn/target.h"
const char BuiltinTool::kBuiltinToolPhony[] = "phony";
BuiltinTool::BuiltinTool(const char* n) : Tool(n) {
CHECK(ValidateName(n));
SetToolComplete();
}
BuiltinTool::~BuiltinTool() = default;
BuiltinTool* BuiltinTool::AsBuiltin() {
return this;
}
const BuiltinTool* BuiltinTool::AsBuiltin() const {
return this;
}
bool BuiltinTool::ValidateName(const char* name) const {
return name == kBuiltinToolPhony;
}
void BuiltinTool::SetComplete() {
}
bool BuiltinTool::InitTool(Scope* scope, Toolchain* toolchain, Err* err) {
return Tool::InitTool(scope, toolchain, err);
}
bool BuiltinTool::ValidateSubstitution(const Substitution* sub_type) const {
if (name_ == kBuiltinToolPhony)
return IsValidToolSubstitution(sub_type);
NOTREACHED();
return false;
}