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 |