| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "tools/gn/toolchain.h" | 5 #include "tools/gn/toolchain.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 #include <utility> |
| 9 | 10 |
| 10 #include "base/logging.h" | 11 #include "base/logging.h" |
| 11 #include "tools/gn/target.h" | 12 #include "tools/gn/target.h" |
| 12 #include "tools/gn/value.h" | 13 #include "tools/gn/value.h" |
| 13 | 14 |
| 14 const char* Toolchain::kToolCc = "cc"; | 15 const char* Toolchain::kToolCc = "cc"; |
| 15 const char* Toolchain::kToolCxx = "cxx"; | 16 const char* Toolchain::kToolCxx = "cxx"; |
| 16 const char* Toolchain::kToolObjC = "objc"; | 17 const char* Toolchain::kToolObjC = "objc"; |
| 17 const char* Toolchain::kToolObjCxx = "objcxx"; | 18 const char* Toolchain::kToolObjCxx = "objcxx"; |
| 18 const char* Toolchain::kToolRc = "rc"; | 19 const char* Toolchain::kToolRc = "rc"; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 | 82 |
| 82 const Tool* Toolchain::GetTool(ToolType type) const { | 83 const Tool* Toolchain::GetTool(ToolType type) const { |
| 83 DCHECK(type != TYPE_NONE); | 84 DCHECK(type != TYPE_NONE); |
| 84 return tools_[static_cast<size_t>(type)].get(); | 85 return tools_[static_cast<size_t>(type)].get(); |
| 85 } | 86 } |
| 86 | 87 |
| 87 void Toolchain::SetTool(ToolType type, scoped_ptr<Tool> t) { | 88 void Toolchain::SetTool(ToolType type, scoped_ptr<Tool> t) { |
| 88 DCHECK(type != TYPE_NONE); | 89 DCHECK(type != TYPE_NONE); |
| 89 DCHECK(!tools_[type].get()); | 90 DCHECK(!tools_[type].get()); |
| 90 t->SetComplete(); | 91 t->SetComplete(); |
| 91 tools_[type] = t.Pass(); | 92 tools_[type] = std::move(t); |
| 92 } | 93 } |
| 93 | 94 |
| 94 void Toolchain::ToolchainSetupComplete() { | 95 void Toolchain::ToolchainSetupComplete() { |
| 95 // Collect required bits from all tools. | 96 // Collect required bits from all tools. |
| 96 for (const auto& tool : tools_) { | 97 for (const auto& tool : tools_) { |
| 97 if (tool) | 98 if (tool) |
| 98 substitution_bits_.MergeFrom(tool->substitution_bits()); | 99 substitution_bits_.MergeFrom(tool->substitution_bits()); |
| 99 } | 100 } |
| 100 | 101 |
| 101 setup_complete_ = true; | 102 setup_complete_ = true; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 return TYPE_STAMP; | 157 return TYPE_STAMP; |
| 157 default: | 158 default: |
| 158 NOTREACHED(); | 159 NOTREACHED(); |
| 159 return Toolchain::TYPE_NONE; | 160 return Toolchain::TYPE_NONE; |
| 160 } | 161 } |
| 161 } | 162 } |
| 162 | 163 |
| 163 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const { | 164 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const { |
| 164 return tools_[GetToolTypeForTargetFinalOutput(target)].get(); | 165 return tools_[GetToolTypeForTargetFinalOutput(target)].get(); |
| 165 } | 166 } |
| OLD | NEW |