Home | History | Annotate | Download | only in gn
      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 #include "tools/gn/config_values_extractors.h"
      6 
      7 #include "tools/gn/escape.h"
      8 
      9 namespace {
     10 
     11 class EscapedStringWriter {
     12  public:
     13   EscapedStringWriter(const EscapeOptions& escape_options)
     14       : escape_options_(escape_options) {
     15   }
     16 
     17   void operator()(const std::string& s, std::ostream& out) const {
     18     out << " ";
     19     EscapeStringToStream(out, s, escape_options_);
     20   }
     21 
     22  private:
     23   const EscapeOptions& escape_options_;
     24 };
     25 
     26 }  // namespace
     27 
     28 void RecursiveTargetConfigStringsToStream(
     29     const Target* target,
     30     const std::vector<std::string>& (ConfigValues::* getter)() const,
     31     const EscapeOptions& escape_options,
     32     std::ostream& out) {
     33   RecursiveTargetConfigToStream(target, getter,
     34                                 EscapedStringWriter(escape_options), out);
     35 }
     36