| 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 |