16d528ed9Sopenharmony_ci// Copyright 2016 The Chromium Authors. All rights reserved.
26d528ed9Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be
36d528ed9Sopenharmony_ci// found in the LICENSE file.
46d528ed9Sopenharmony_ci
56d528ed9Sopenharmony_ci#include "gn/ninja_bundle_data_target_writer.h"
66d528ed9Sopenharmony_ci
76d528ed9Sopenharmony_ci#include "gn/output_file.h"
86d528ed9Sopenharmony_ci#include "gn/settings.h"
96d528ed9Sopenharmony_ci#include "gn/target.h"
106d528ed9Sopenharmony_ci
116d528ed9Sopenharmony_ciNinjaBundleDataTargetWriter::NinjaBundleDataTargetWriter(const Target* target,
126d528ed9Sopenharmony_ci                                                         std::ostream& out)
136d528ed9Sopenharmony_ci    : NinjaTargetWriter(target, out) {}
146d528ed9Sopenharmony_ci
156d528ed9Sopenharmony_ciNinjaBundleDataTargetWriter::~NinjaBundleDataTargetWriter() = default;
166d528ed9Sopenharmony_ci
176d528ed9Sopenharmony_civoid NinjaBundleDataTargetWriter::Run() {
186d528ed9Sopenharmony_ci  std::vector<OutputFile> output_files;
196d528ed9Sopenharmony_ci  for (const SourceFile& source_file : target_->sources()) {
206d528ed9Sopenharmony_ci    output_files.push_back(
216d528ed9Sopenharmony_ci        OutputFile(settings_->build_settings(), source_file));
226d528ed9Sopenharmony_ci  }
236d528ed9Sopenharmony_ci
246d528ed9Sopenharmony_ci  std::vector<OutputFile> input_deps = WriteInputDepsStampAndGetDep(
256d528ed9Sopenharmony_ci      std::vector<const Target*>(), /*num_stamp_uses=*/1);
266d528ed9Sopenharmony_ci  output_files.insert(output_files.end(), input_deps.begin(), input_deps.end());
276d528ed9Sopenharmony_ci
286d528ed9Sopenharmony_ci  std::vector<OutputFile> order_only_deps;
296d528ed9Sopenharmony_ci  for (const Target* data_dep : resolved().GetDataDeps(target_))
306d528ed9Sopenharmony_ci    order_only_deps.push_back(data_dep->dependency_output_file());
316d528ed9Sopenharmony_ci
326d528ed9Sopenharmony_ci  WriteStampForTarget(output_files, order_only_deps);
336d528ed9Sopenharmony_ci}
34