| // Copyright (c) 2013 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_WRITER_H_ |
| #define TOOLS_GN_NINJA_WRITER_H_ |
| // Combines a target and the computed build rule for it. |
| using TargetRulePair = std::pair<const Target*, std::string>; |
| // Associates the build rules with each toolchain. |
| using PerToolchainRules = |
| std::map<const Toolchain*, std::vector<TargetRulePair>>; |
| // On failure will populate |err| and will return false. The map contains |
| // the per-toolchain set of rules collected to write to the toolchain build |
| static bool RunAndWriteFiles(const BuildSettings* build_settings, |
| const PerToolchainRules& per_toolchain_rules, |
| NinjaWriter(const Builder& builder); |
| bool WriteToolchains(const PerToolchainRules& per_toolchain_rules, Err* err); |
| DISALLOW_COPY_AND_ASSIGN(NinjaWriter); |
| #endif // TOOLS_GN_NINJA_WRITER_H_ |