Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: tools/gn/toolchain.cc

Issue 2926013002: Support explicit pools in actions (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include <utility>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "tools/gn/target.h" 12 #include "tools/gn/target.h"
13 #include "tools/gn/value.h" 13 #include "tools/gn/value.h"
14 14
15 const char* Toolchain::kToolCc = "cc"; 15 const char* Toolchain::kToolCc = "cc";
16 const char* Toolchain::kToolCxx = "cxx"; 16 const char* Toolchain::kToolCxx = "cxx";
17 const char* Toolchain::kToolObjC = "objc"; 17 const char* Toolchain::kToolObjC = "objc";
18 const char* Toolchain::kToolObjCxx = "objcxx"; 18 const char* Toolchain::kToolObjCxx = "objcxx";
19 const char* Toolchain::kToolRc = "rc"; 19 const char* Toolchain::kToolRc = "rc";
20 const char* Toolchain::kToolAsm = "asm"; 20 const char* Toolchain::kToolAsm = "asm";
21 const char* Toolchain::kToolAlink = "alink"; 21 const char* Toolchain::kToolAlink = "alink";
22 const char* Toolchain::kToolSolink = "solink"; 22 const char* Toolchain::kToolSolink = "solink";
23 const char* Toolchain::kToolSolinkModule = "solink_module"; 23 const char* Toolchain::kToolSolinkModule = "solink_module";
24 const char* Toolchain::kToolLink = "link"; 24 const char* Toolchain::kToolLink = "link";
25 const char* Toolchain::kToolStamp = "stamp"; 25 const char* Toolchain::kToolStamp = "stamp";
26 const char* Toolchain::kToolCopy = "copy"; 26 const char* Toolchain::kToolCopy = "copy";
27 const char* Toolchain::kToolCopyBundleData = "copy_bundle_data"; 27 const char* Toolchain::kToolCopyBundleData = "copy_bundle_data";
28 const char* Toolchain::kToolCompileXCAssets = "compile_xcassets"; 28 const char* Toolchain::kToolCompileXCAssets = "compile_xcassets";
29 const char* Toolchain::kToolAction = "action";
29 30
30 Toolchain::Toolchain(const Settings* settings, const Label& label) 31 Toolchain::Toolchain(const Settings* settings, const Label& label)
31 : Item(settings, label), 32 : Item(settings, label),
32 setup_complete_(false) { 33 setup_complete_(false) {
33 } 34 }
34 35
35 Toolchain::~Toolchain() { 36 Toolchain::~Toolchain() {
36 } 37 }
37 38
38 Toolchain* Toolchain::AsToolchain() { 39 Toolchain* Toolchain::AsToolchain() {
(...skipping 13 matching lines...) Expand all
52 if (str == kToolRc) return TYPE_RC; 53 if (str == kToolRc) return TYPE_RC;
53 if (str == kToolAsm) return TYPE_ASM; 54 if (str == kToolAsm) return TYPE_ASM;
54 if (str == kToolAlink) return TYPE_ALINK; 55 if (str == kToolAlink) return TYPE_ALINK;
55 if (str == kToolSolink) return TYPE_SOLINK; 56 if (str == kToolSolink) return TYPE_SOLINK;
56 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE; 57 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE;
57 if (str == kToolLink) return TYPE_LINK; 58 if (str == kToolLink) return TYPE_LINK;
58 if (str == kToolStamp) return TYPE_STAMP; 59 if (str == kToolStamp) return TYPE_STAMP;
59 if (str == kToolCopy) return TYPE_COPY; 60 if (str == kToolCopy) return TYPE_COPY;
60 if (str == kToolCopyBundleData) return TYPE_COPY_BUNDLE_DATA; 61 if (str == kToolCopyBundleData) return TYPE_COPY_BUNDLE_DATA;
61 if (str == kToolCompileXCAssets) return TYPE_COMPILE_XCASSETS; 62 if (str == kToolCompileXCAssets) return TYPE_COMPILE_XCASSETS;
63 if (str == kToolAction)
brettw 2017/06/08 18:36:20 Can you format this list of conditions (and the ne
Petr Hosek 2017/06/09 03:24:33 Done, this was done by clang-format.
64 return TYPE_ACTION;
62 return TYPE_NONE; 65 return TYPE_NONE;
63 } 66 }
64 67
65 // static 68 // static
66 std::string Toolchain::ToolTypeToName(ToolType type) { 69 std::string Toolchain::ToolTypeToName(ToolType type) {
67 switch (type) { 70 switch (type) {
68 case TYPE_CC: return kToolCc; 71 case TYPE_CC: return kToolCc;
69 case TYPE_CXX: return kToolCxx; 72 case TYPE_CXX: return kToolCxx;
70 case TYPE_OBJC: return kToolObjC; 73 case TYPE_OBJC: return kToolObjC;
71 case TYPE_OBJCXX: return kToolObjCxx; 74 case TYPE_OBJCXX: return kToolObjCxx;
72 case TYPE_RC: return kToolRc; 75 case TYPE_RC: return kToolRc;
73 case TYPE_ASM: return kToolAsm; 76 case TYPE_ASM: return kToolAsm;
74 case TYPE_ALINK: return kToolAlink; 77 case TYPE_ALINK: return kToolAlink;
75 case TYPE_SOLINK: return kToolSolink; 78 case TYPE_SOLINK: return kToolSolink;
76 case TYPE_SOLINK_MODULE: return kToolSolinkModule; 79 case TYPE_SOLINK_MODULE: return kToolSolinkModule;
77 case TYPE_LINK: return kToolLink; 80 case TYPE_LINK: return kToolLink;
78 case TYPE_STAMP: return kToolStamp; 81 case TYPE_STAMP: return kToolStamp;
79 case TYPE_COPY: return kToolCopy; 82 case TYPE_COPY: return kToolCopy;
80 case TYPE_COPY_BUNDLE_DATA: return kToolCopyBundleData; 83 case TYPE_COPY_BUNDLE_DATA: return kToolCopyBundleData;
81 case TYPE_COMPILE_XCASSETS: return kToolCompileXCAssets; 84 case TYPE_COMPILE_XCASSETS: return kToolCompileXCAssets;
85 case TYPE_ACTION:
86 return kToolAction;
82 default: 87 default:
83 NOTREACHED(); 88 NOTREACHED();
84 return std::string(); 89 return std::string();
85 } 90 }
86 } 91 }
87 92
88 Tool* Toolchain::GetTool(ToolType type) { 93 Tool* Toolchain::GetTool(ToolType type) {
89 DCHECK(type != TYPE_NONE); 94 DCHECK(type != TYPE_NONE);
90 return tools_[static_cast<size_t>(type)].get(); 95 return tools_[static_cast<size_t>(type)].get();
91 } 96 }
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 return TYPE_STAMP; 174 return TYPE_STAMP;
170 default: 175 default:
171 NOTREACHED(); 176 NOTREACHED();
172 return Toolchain::TYPE_NONE; 177 return Toolchain::TYPE_NONE;
173 } 178 }
174 } 179 }
175 180
176 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const { 181 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const {
177 return tools_[GetToolTypeForTargetFinalOutput(target)].get(); 182 return tools_[GetToolTypeForTargetFinalOutput(target)].get();
178 } 183 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698