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_ACTION_TARGET_GENERATOR_H_ 6#define TOOLS_GN_ACTION_TARGET_GENERATOR_H_ 7 8#include "base/compiler_specific.h" 9#include "tools/gn/target_generator.h" 10 11// Populates a Target with the values from an action[_foreach] rule. 12class ActionTargetGenerator : public TargetGenerator { 13 public: 14 ActionTargetGenerator(Target* target, 15 Scope* scope, 16 const FunctionCallNode* function_call, 17 Target::OutputType type, 18 Err* err); 19 virtual ~ActionTargetGenerator(); 20 21 protected: 22 virtual void DoRun() OVERRIDE; 23 24 private: 25 bool FillScript(); 26 bool FillScriptArgs(); 27 bool FillDepfile(); 28 29 // Checks for errors in the outputs variable. 30 bool CheckOutputs(); 31 32 Target::OutputType output_type_; 33 34 DISALLOW_COPY_AND_ASSIGN(ActionTargetGenerator); 35}; 36 37#endif // TOOLS_GN_ACTION_TARGET_GENERATOR_H_ 38