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#ifndef TOOLS_GN_CONFIG_H_
6#define TOOLS_GN_CONFIG_H_
7
8#include "base/compiler_specific.h"
9#include "tools/gn/config_values.h"
10#include "tools/gn/item.h"
11
12// Represents a named config in the dependency graph.
13class Config : public Item {
14 public:
15  Config(const Settings* settings, const Label& label);
16  virtual ~Config();
17
18  virtual Config* AsConfig() OVERRIDE;
19  virtual const Config* AsConfig() const OVERRIDE;
20
21  ConfigValues& config_values() { return config_values_; }
22  const ConfigValues& config_values() const { return config_values_; }
23
24 private:
25  ConfigValues config_values_;
26
27  DISALLOW_COPY_AND_ASSIGN(Config);
28};
29
30#endif  // TOOLS_GN_CONFIG_H_
31