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 "base/logging.h" | 7 #include "base/logging.h" |
8 | 8 |
9 const char* Toolchain::kToolCc = "cc"; | 9 const char* Toolchain::kToolCc = "cc"; |
10 const char* Toolchain::kToolCxx = "cxx"; | 10 const char* Toolchain::kToolCxx = "cxx"; |
11 const char* Toolchain::kToolObjC = "objc"; | 11 const char* Toolchain::kToolObjC = "objc"; |
12 const char* Toolchain::kToolObjCxx = "objcxx"; | 12 const char* Toolchain::kToolObjCxx = "objcxx"; |
13 const char* Toolchain::kToolAsm = "asm"; | 13 const char* Toolchain::kToolAsm = "asm"; |
14 const char* Toolchain::kToolAlink = "alink"; | 14 const char* Toolchain::kToolAlink = "alink"; |
15 const char* Toolchain::kToolSolink = "solink"; | 15 const char* Toolchain::kToolSolink = "solink"; |
16 const char* Toolchain::kToolSolinkModule = "solink_module"; | |
17 const char* Toolchain::kToolLink = "link"; | 16 const char* Toolchain::kToolLink = "link"; |
18 const char* Toolchain::kToolStamp = "stamp"; | 17 const char* Toolchain::kToolStamp = "stamp"; |
19 const char* Toolchain::kToolCopy = "copy"; | 18 const char* Toolchain::kToolCopy = "copy"; |
20 | 19 |
21 Toolchain::Tool::Tool() { | 20 Toolchain::Tool::Tool() { |
22 } | 21 } |
23 | 22 |
24 Toolchain::Tool::~Tool() { | 23 Toolchain::Tool::~Tool() { |
25 } | 24 } |
26 | 25 |
(...skipping 13 matching lines...) Expand all Loading... |
40 | 39 |
41 // static | 40 // static |
42 Toolchain::ToolType Toolchain::ToolNameToType(const base::StringPiece& str) { | 41 Toolchain::ToolType Toolchain::ToolNameToType(const base::StringPiece& str) { |
43 if (str == kToolCc) return TYPE_CC; | 42 if (str == kToolCc) return TYPE_CC; |
44 if (str == kToolCxx) return TYPE_CXX; | 43 if (str == kToolCxx) return TYPE_CXX; |
45 if (str == kToolObjC) return TYPE_OBJC; | 44 if (str == kToolObjC) return TYPE_OBJC; |
46 if (str == kToolObjCxx) return TYPE_OBJCXX; | 45 if (str == kToolObjCxx) return TYPE_OBJCXX; |
47 if (str == kToolAsm) return TYPE_ASM; | 46 if (str == kToolAsm) return TYPE_ASM; |
48 if (str == kToolAlink) return TYPE_ALINK; | 47 if (str == kToolAlink) return TYPE_ALINK; |
49 if (str == kToolSolink) return TYPE_SOLINK; | 48 if (str == kToolSolink) return TYPE_SOLINK; |
50 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE; | |
51 if (str == kToolLink) return TYPE_LINK; | 49 if (str == kToolLink) return TYPE_LINK; |
52 if (str == kToolStamp) return TYPE_STAMP; | 50 if (str == kToolStamp) return TYPE_STAMP; |
53 if (str == kToolCopy) return TYPE_COPY; | 51 if (str == kToolCopy) return TYPE_COPY; |
54 return TYPE_NONE; | 52 return TYPE_NONE; |
55 } | 53 } |
56 | 54 |
57 // static | 55 // static |
58 std::string Toolchain::ToolTypeToName(ToolType type) { | 56 std::string Toolchain::ToolTypeToName(ToolType type) { |
59 switch (type) { | 57 switch (type) { |
60 case TYPE_CC: return kToolCc; | 58 case TYPE_CC: return kToolCc; |
61 case TYPE_CXX: return kToolCxx; | 59 case TYPE_CXX: return kToolCxx; |
62 case TYPE_OBJC: return kToolObjC; | 60 case TYPE_OBJC: return kToolObjC; |
63 case TYPE_OBJCXX: return kToolObjCxx; | 61 case TYPE_OBJCXX: return kToolObjCxx; |
64 case TYPE_ASM: return kToolAsm; | 62 case TYPE_ASM: return kToolAsm; |
65 case TYPE_ALINK: return kToolAlink; | 63 case TYPE_ALINK: return kToolAlink; |
66 case TYPE_SOLINK: return kToolSolink; | 64 case TYPE_SOLINK: return kToolSolink; |
67 case TYPE_SOLINK_MODULE: return kToolSolinkModule; | |
68 case TYPE_LINK: return kToolLink; | 65 case TYPE_LINK: return kToolLink; |
69 case TYPE_STAMP: return kToolStamp; | 66 case TYPE_STAMP: return kToolStamp; |
70 case TYPE_COPY: return kToolCopy; | 67 case TYPE_COPY: return kToolCopy; |
71 default: | 68 default: |
72 NOTREACHED(); | 69 NOTREACHED(); |
73 return std::string(); | 70 return std::string(); |
74 } | 71 } |
75 } | 72 } |
76 | 73 |
77 const Toolchain::Tool& Toolchain::GetTool(ToolType type) const { | 74 const Toolchain::Tool& Toolchain::GetTool(ToolType type) const { |
78 DCHECK(type != TYPE_NONE); | 75 DCHECK(type != TYPE_NONE); |
79 return tools_[static_cast<size_t>(type)]; | 76 return tools_[static_cast<size_t>(type)]; |
80 } | 77 } |
81 | 78 |
82 void Toolchain::SetTool(ToolType type, const Tool& t) { | 79 void Toolchain::SetTool(ToolType type, const Tool& t) { |
83 DCHECK(type != TYPE_NONE); | 80 DCHECK(type != TYPE_NONE); |
84 tools_[static_cast<size_t>(type)] = t; | 81 tools_[static_cast<size_t>(type)] = t; |
85 } | 82 } |
OLD | NEW |