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