| // Copyright 2019 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. |
| #ifndef TOOLS_GN_NINJA_RUST_BINARY_TARGET_WRITER_H_ |
| #define TOOLS_GN_NINJA_RUST_BINARY_TARGET_WRITER_H_ |
| #include "tools/gn/ninja_binary_target_writer.h" |
| #include "tools/gn/rust_tool.h" |
| // Writes a .ninja file for a binary target type (an executable, a shared |
| // library, or a static library). |
| class NinjaRustBinaryTargetWriter : public NinjaBinaryTargetWriter { |
| NinjaRustBinaryTargetWriter(const Target* target, std::ostream& out); |
| ~NinjaRustBinaryTargetWriter() override; |
| void WriteCompilerVars(); |
| void WriteSources(const OutputFile& input_dep, |
| const std::vector<OutputFile>& order_only_deps); |
| void WriteExterns(const std::vector<const Target*>& deps); |
| void WriteRustdeps(const std::vector<OutputFile>& rustdeps, |
| const std::vector<OutputFile>& nonrustdeps); |
| DISALLOW_COPY_AND_ASSIGN(NinjaRustBinaryTargetWriter); |
| #endif // TOOLS_GN_NINJA_RUST_BINARY_TARGET_WRITER_H_ |