blob: fc8878db527f0d2ddac34fa0e249f703adc73202 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "gn/general_tool.h"
#include "gn/target.h"
const char* GeneralTool::kGeneralToolStamp = "stamp";
const char* GeneralTool::kGeneralToolCopy = "copy";
const char* GeneralTool::kGeneralToolCopyBundleData = "copy_bundle_data";
const char* GeneralTool::kGeneralToolCompileXCAssets = "compile_xcassets";
const char* GeneralTool::kGeneralToolAction = "action";
GeneralTool::GeneralTool(const char* n) : Tool(n) {
CHECK(ValidateName(n));
}
GeneralTool::~GeneralTool() = default;
GeneralTool* GeneralTool::AsGeneral() {
return this;
}
const GeneralTool* GeneralTool::AsGeneral() const {
return this;
}
bool GeneralTool::ValidateName(const char* name) const {
return name == kGeneralToolStamp || name == kGeneralToolCopy ||
name == kGeneralToolCopyBundleData ||
name == kGeneralToolCompileXCAssets || name == kGeneralToolAction;
}
void GeneralTool::SetComplete() {
SetToolComplete();
}
bool GeneralTool::InitTool(Scope* scope, Toolchain* toolchain, Err* err) {
// Initialize default vars.
return Tool::InitTool(scope, toolchain, err);
}
bool GeneralTool::ValidateSubstitution(const Substitution* sub_type) const {
if (name_ == kGeneralToolStamp || name_ == kGeneralToolAction)
return IsValidToolSubstitution(sub_type);
else if (name_ == kGeneralToolCopy || name_ == kGeneralToolCopyBundleData)
return IsValidCopySubstitution(sub_type);
else if (name_ == kGeneralToolCompileXCAssets)
return IsValidCompileXCassetsSubstitution(sub_type);
NOTREACHED();
return false;
}