mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +03:00
52 lines
1.6 KiB
C
52 lines
1.6 KiB
C
|
// Copyright 2016 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_BUNDLE_FILE_RULE_H_
|
||
|
#define TOOLS_GN_BUNDLE_FILE_RULE_H_
|
||
|
|
||
|
#include <vector>
|
||
|
|
||
|
#include "tools/gn/source_file.h"
|
||
|
#include "tools/gn/substitution_pattern.h"
|
||
|
|
||
|
class BundleData;
|
||
|
class Settings;
|
||
|
class SourceFile;
|
||
|
class Target;
|
||
|
class OutputFile;
|
||
|
|
||
|
// BundleFileRule contains the information found in a "bundle_data" target.
|
||
|
class BundleFileRule {
|
||
|
public:
|
||
|
BundleFileRule(const Target* bundle_data_target,
|
||
|
const std::vector<SourceFile> sources,
|
||
|
const SubstitutionPattern& pattern);
|
||
|
BundleFileRule(const BundleFileRule& other);
|
||
|
~BundleFileRule();
|
||
|
|
||
|
// Applies the substitution pattern to a source file, returning the result
|
||
|
// as either a SourceFile or an OutputFile.
|
||
|
SourceFile ApplyPatternToSource(const Settings* settings,
|
||
|
const BundleData& bundle_data,
|
||
|
const SourceFile& source_file) const;
|
||
|
OutputFile ApplyPatternToSourceAsOutputFile(
|
||
|
const Settings* settings,
|
||
|
const BundleData& bundle_data,
|
||
|
const SourceFile& source_file) const;
|
||
|
|
||
|
// Returns the associated target (of type Target::BUNDLE_DATA). May be
|
||
|
// null during testing.
|
||
|
const Target* target() const { return target_; }
|
||
|
|
||
|
// Returns the list of SourceFiles.
|
||
|
const std::vector<SourceFile>& sources() const { return sources_; }
|
||
|
|
||
|
private:
|
||
|
const Target* target_;
|
||
|
std::vector<SourceFile> sources_;
|
||
|
SubstitutionPattern pattern_;
|
||
|
};
|
||
|
|
||
|
#endif // TOOLS_GN_BUNDLE_FILE_RULE_H_
|