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. 12 class 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 void FillScript(); 26 void FillScriptArgs(); 27 void FillDepfile(); 28 29 // Checks for errors in the outputs variable. 30 void 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