|  | // 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. | 
|  |  | 
|  | #ifndef TOOLS_GN_CONFIG_VALUES_GENERATOR_H_ | 
|  | #define TOOLS_GN_CONFIG_VALUES_GENERATOR_H_ | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "tools/gn/source_dir.h" | 
|  |  | 
|  | class ConfigValues; | 
|  | class Err; | 
|  | class Scope; | 
|  |  | 
|  | // This class fills in the config values from a given scope. It's shared | 
|  | // between the "config" function call and all the different binary target types | 
|  | // (shared library, static library, etc.) since all of these support the | 
|  | // various flags stored in the ConfigValues class. | 
|  | class ConfigValuesGenerator { | 
|  | public: | 
|  | ConfigValuesGenerator(ConfigValues* dest_values, | 
|  | Scope* scope, | 
|  | const SourceDir& input_dir, | 
|  | Err* err); | 
|  | ~ConfigValuesGenerator(); | 
|  |  | 
|  | // Sets the error passed to the constructor on failure. | 
|  | void Run(); | 
|  |  | 
|  | private: | 
|  | ConfigValues* config_values_; | 
|  | Scope* scope_; | 
|  | const SourceDir input_dir_; | 
|  | Err* err_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(ConfigValuesGenerator); | 
|  | }; | 
|  |  | 
|  | // For using in documentation for functions which use this. | 
|  | #define CONFIG_VALUES_VARS_HELP                                            \ | 
|  | "  Flags: cflags, cflags_c, cflags_cc, cflags_objc, cflags_objcc,\n"     \ | 
|  | "         asmflags, defines, include_dirs, inputs, ldflags, lib_dirs,\n" \ | 
|  | "         libs, precompiled_header, precompiled_source\n" | 
|  |  | 
|  | #endif  // TOOLS_GN_CONFIG_VALUES_GENERATOR_H_ |