1 // Copyright 2016 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_BUNDLE_DATA_TARGET_GENERATOR_H_ 6 #define TOOLS_GN_BUNDLE_DATA_TARGET_GENERATOR_H_ 7 8 #include "base/macros.h" 9 #include "gn/target_generator.h" 10 11 // Populates a Target with the values from a bundle_data rule. 12 class BundleDataTargetGenerator : public TargetGenerator { 13 public: 14 BundleDataTargetGenerator(Target* target, 15 Scope* scope, 16 const FunctionCallNode* function_call, 17 Err* err); 18 ~BundleDataTargetGenerator() override; 19 20 protected: 21 void DoRun() override; 22 23 private: 24 bool FillOutputs(); 25 26 bool EnsureSubstitutionIsInBundleDir(const SubstitutionPattern& pattern, 27 const Value& original_value); 28 29 DISALLOW_COPY_AND_ASSIGN(BundleDataTargetGenerator); 30 }; 31 32 #endif // TOOLS_GN_BUNDLE_DATA_TARGET_GENERATOR_H_ 33