Index: trunk/src/tools/gn/ninja_writer.cc |
=================================================================== |
--- trunk/src/tools/gn/ninja_writer.cc (revision 214322) |
+++ trunk/src/tools/gn/ninja_writer.cc (working copy) |
@@ -1,64 +0,0 @@ |
-// 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. |
- |
-#include "tools/gn/ninja_writer.h" |
- |
-#include "tools/gn/location.h" |
-#include "tools/gn/ninja_build_writer.h" |
-#include "tools/gn/ninja_toolchain_writer.h" |
- |
- |
-NinjaWriter::NinjaWriter(const BuildSettings* build_settings) |
- : build_settings_(build_settings) { |
-} |
- |
-NinjaWriter::~NinjaWriter() { |
-} |
- |
-// static |
-bool NinjaWriter::RunAndWriteFiles(const BuildSettings* build_settings) { |
- NinjaWriter writer(build_settings); |
- return writer.WriteRootBuildfiles(); |
-} |
- |
-bool NinjaWriter::WriteRootBuildfiles() { |
- // Categorize all targets by toolchain. |
- typedef std::map<Label, std::vector<const Target*> > CategorizedMap; |
- CategorizedMap categorized; |
- |
- std::vector<const Target*> all_targets; |
- build_settings_->target_manager().GetAllTargets(&all_targets); |
- for (size_t i = 0; i < all_targets.size(); i++) { |
- categorized[all_targets[i]->label().GetToolchainLabel()].push_back( |
- all_targets[i]); |
- } |
- |
- Label default_label = |
- build_settings_->toolchain_manager().GetDefaultToolchainUnlocked(); |
- |
- // Write out the toolchain buildfiles, and also accumulate the set of |
- // all settings and find the list of targets in the default toolchain. |
- std::vector<const Settings*> all_settings; |
- const std::vector<const Target*>* default_targets = NULL; |
- for (CategorizedMap::const_iterator i = categorized.begin(); |
- i != categorized.end(); ++i) { |
- const Settings* settings; |
- { |
- base::AutoLock lock(build_settings_->item_tree().lock()); |
- Err ignored; |
- settings = |
- build_settings_->toolchain_manager().GetSettingsForToolchainLocked( |
- LocationRange(), i->first, &ignored); |
- } |
- if (i->first == default_label) |
- default_targets = &i->second; |
- all_settings.push_back(settings); |
- if (!NinjaToolchainWriter::RunAndWriteFile(settings, i->second)) |
- return false; |
- } |
- |
- // Write the root buildfile. |
- return NinjaBuildWriter::RunAndWriteFile(build_settings_, all_settings, |
- *default_targets); |
-} |