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