Home | History | Annotate | Download | only in gn
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "tools/gn/item.h"
      6 
      7 #include "base/logging.h"
      8 
      9 Item::Item(const Settings* settings, const Label& label)
     10     : settings_(settings),
     11       label_(label),
     12       defined_from_(NULL) {
     13 }
     14 
     15 Item::~Item() {
     16 }
     17 
     18 Config* Item::AsConfig() { return NULL; }
     19 const Config* Item::AsConfig() const { return NULL; }
     20 Target* Item::AsTarget() { return NULL; }
     21 const Target* Item::AsTarget() const { return NULL; }
     22 Toolchain* Item::AsToolchain() { return NULL; }
     23 const Toolchain* Item::AsToolchain() const { return NULL; }
     24 
     25 std::string Item::GetItemTypeName() const {
     26   if (AsConfig())
     27     return "config";
     28   if (AsTarget())
     29     return "target";
     30   if (AsToolchain())
     31     return "toolchain";
     32   NOTREACHED();
     33   return "this thing that I have no idea what it is";
     34 }
     35