1ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// found in the LICENSE file.
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "tools/gn/action_values.h"
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "tools/gn/substitution_writer.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "tools/gn/target.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)ActionValues::ActionValues() {
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)ActionValues::~ActionValues() {
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid ActionValues::GetOutputsAsSourceFiles(
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const Target* target,
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    std::vector<SourceFile>* result) const {
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  if (target->output_type() == Target::COPY_FILES ||
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      target->output_type() == Target::ACTION_FOREACH) {
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    // Copy and foreach applies the outputs to the sources.
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    SubstitutionWriter::ApplyListToSources(
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        target->settings(), outputs_, target->sources(), result);
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  } else {
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    // Actions (and anything else that happens to specify an output) just use
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    // the output list with no substitution.
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    SubstitutionWriter::GetListAsSourceFiles(outputs_, result);
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
30