diff options
Diffstat (limited to 'tools/gn/action_target_generator.h')
-rw-r--r-- | tools/gn/action_target_generator.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/gn/action_target_generator.h b/tools/gn/action_target_generator.h new file mode 100644 index 0000000..aa81c3d --- /dev/null +++ b/tools/gn/action_target_generator.h @@ -0,0 +1,37 @@ +// 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_ACTION_TARGET_GENERATOR_H_ +#define TOOLS_GN_ACTION_TARGET_GENERATOR_H_ + +#include "base/compiler_specific.h" +#include "tools/gn/target_generator.h" + +// Populates a Target with the values from an action[_foreach] rule. +class ActionTargetGenerator : public TargetGenerator { + public: + ActionTargetGenerator(Target* target, + Scope* scope, + const FunctionCallNode* function_call, + Target::OutputType type, + Err* err); + virtual ~ActionTargetGenerator(); + + protected: + virtual void DoRun() OVERRIDE; + + private: + void FillScript(); + void FillScriptArgs(); + void FillDepfile(); + + // Checks for errors in the outputs variable. + void CheckOutputs(); + + Target::OutputType output_type_; + + DISALLOW_COPY_AND_ASSIGN(ActionTargetGenerator); +}; + +#endif // TOOLS_GN_ACTION_TARGET_GENERATOR_H_ |