36 lines
944 B
C++
36 lines
944 B
C++
|
// Copyright (c) 2013 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.
|
||
|
|
||
|
#include "tools/gn/config_values_extractors.h"
|
||
|
|
||
|
#include "tools/gn/escape.h"
|
||
|
|
||
|
namespace {
|
||
|
|
||
|
class EscapedStringWriter {
|
||
|
public:
|
||
|
EscapedStringWriter(const EscapeOptions& escape_options)
|
||
|
: escape_options_(escape_options) {
|
||
|
}
|
||
|
|
||
|
void operator()(const std::string& s, std::ostream& out) const {
|
||
|
out << " ";
|
||
|
EscapeStringToStream(out, s, escape_options_);
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
const EscapeOptions& escape_options_;
|
||
|
};
|
||
|
|
||
|
} // namespace
|
||
|
|
||
|
void RecursiveTargetConfigStringsToStream(
|
||
|
const Target* target,
|
||
|
const std::vector<std::string>& (ConfigValues::* getter)() const,
|
||
|
const EscapeOptions& escape_options,
|
||
|
std::ostream& out) {
|
||
|
RecursiveTargetConfigToStream(target, getter,
|
||
|
EscapedStringWriter(escape_options), out);
|
||
|
}
|