1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef TOOLS_GN_NINJA_TOOLCHAIN_WRITER_H_
6 #define TOOLS_GN_NINJA_TOOLCHAIN_WRITER_H_
13 #include "tools/gn/ninja_helper.h"
14 #include "tools/gn/path_output.h"
21 class NinjaToolchainWriter
{
23 // Takes the settings for the toolchain, as well as the list of all targets
24 // assicoated with the toolchain.
25 static bool RunAndWriteFile(const Settings
* settings
,
26 const Toolchain
* toolchain
,
27 const std::vector
<const Target
*>& targets
);
30 NinjaToolchainWriter(const Settings
* settings
,
31 const Toolchain
* toolchain
,
32 const std::vector
<const Target
*>& targets
,
34 ~NinjaToolchainWriter();
39 void WriteSubninjas();
41 const Settings
* settings_
;
42 const Toolchain
* toolchain_
;
43 std::vector
<const Target
*> targets_
;
45 PathOutput path_output_
;
49 DISALLOW_COPY_AND_ASSIGN(NinjaToolchainWriter
);
52 #endif // TOOLS_GN_NINJA_TOOLCHAIN_WRITER_H_