// Copyright (c) 2013 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 "tools/gn/item.h" #include "base/logging.h" #include "tools/gn/settings.h" Item::Item(const Settings* settings, const Label& label, const std::set& build_dependency_files) : settings_(settings), label_(label), build_dependency_files_(build_dependency_files), defined_from_(nullptr) {} Item::~Item() = default; Config* Item::AsConfig() { return nullptr; } const Config* Item::AsConfig() const { return nullptr; } Pool* Item::AsPool() { return nullptr; } const Pool* Item::AsPool() const { return nullptr; } Target* Item::AsTarget() { return nullptr; } const Target* Item::AsTarget() const { return nullptr; } Toolchain* Item::AsToolchain() { return nullptr; } const Toolchain* Item::AsToolchain() const { return nullptr; } std::string Item::GetItemTypeName() const { if (AsConfig()) return "config"; if (AsTarget()) return "target"; if (AsToolchain()) return "toolchain"; if (AsPool()) return "pool"; NOTREACHED(); return "this thing that I have no idea what it is"; } bool Item::OnResolved(Err* err) { return true; }