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

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

Issue 1752033002: Add "create_bundle" target in order to support bundle with gn. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-bundle-data
Patch Set: Add unit tests, address comments, update docs and format with clang-format Created 4 years, 9 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
« no previous file with comments | « tools/gn/toolchain.h ('k') | tools/gn/variables.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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";
28 const char* Toolchain::kToolCompileXCAssets = "compile_xcassets";
27 29
28 Toolchain::Toolchain(const Settings* settings, const Label& label) 30 Toolchain::Toolchain(const Settings* settings, const Label& label)
29 : Item(settings, label), 31 : Item(settings, label),
30 concurrent_links_(0), 32 concurrent_links_(0),
31 setup_complete_(false) { 33 setup_complete_(false) {
32 } 34 }
33 35
34 Toolchain::~Toolchain() { 36 Toolchain::~Toolchain() {
35 } 37 }
36 38
(...skipping 12 matching lines...) Expand all
49 if (str == kToolObjC) return TYPE_OBJC; 51 if (str == kToolObjC) return TYPE_OBJC;
50 if (str == kToolObjCxx) return TYPE_OBJCXX; 52 if (str == kToolObjCxx) return TYPE_OBJCXX;
51 if (str == kToolRc) return TYPE_RC; 53 if (str == kToolRc) return TYPE_RC;
52 if (str == kToolAsm) return TYPE_ASM; 54 if (str == kToolAsm) return TYPE_ASM;
53 if (str == kToolAlink) return TYPE_ALINK; 55 if (str == kToolAlink) return TYPE_ALINK;
54 if (str == kToolSolink) return TYPE_SOLINK; 56 if (str == kToolSolink) return TYPE_SOLINK;
55 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE; 57 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE;
56 if (str == kToolLink) return TYPE_LINK; 58 if (str == kToolLink) return TYPE_LINK;
57 if (str == kToolStamp) return TYPE_STAMP; 59 if (str == kToolStamp) return TYPE_STAMP;
58 if (str == kToolCopy) return TYPE_COPY; 60 if (str == kToolCopy) return TYPE_COPY;
61 if (str == kToolCopyBundleData) return TYPE_COPY_BUNDLE_DATA;
62 if (str == kToolCompileXCAssets) return TYPE_COMPILE_XCASSETS;
59 return TYPE_NONE; 63 return TYPE_NONE;
60 } 64 }
61 65
62 // static 66 // static
63 std::string Toolchain::ToolTypeToName(ToolType type) { 67 std::string Toolchain::ToolTypeToName(ToolType type) {
64 switch (type) { 68 switch (type) {
65 case TYPE_CC: return kToolCc; 69 case TYPE_CC: return kToolCc;
66 case TYPE_CXX: return kToolCxx; 70 case TYPE_CXX: return kToolCxx;
67 case TYPE_OBJC: return kToolObjC; 71 case TYPE_OBJC: return kToolObjC;
68 case TYPE_OBJCXX: return kToolObjCxx; 72 case TYPE_OBJCXX: return kToolObjCxx;
69 case TYPE_RC: return kToolRc; 73 case TYPE_RC: return kToolRc;
70 case TYPE_ASM: return kToolAsm; 74 case TYPE_ASM: return kToolAsm;
71 case TYPE_ALINK: return kToolAlink; 75 case TYPE_ALINK: return kToolAlink;
72 case TYPE_SOLINK: return kToolSolink; 76 case TYPE_SOLINK: return kToolSolink;
73 case TYPE_SOLINK_MODULE: return kToolSolinkModule; 77 case TYPE_SOLINK_MODULE: return kToolSolinkModule;
74 case TYPE_LINK: return kToolLink; 78 case TYPE_LINK: return kToolLink;
75 case TYPE_STAMP: return kToolStamp; 79 case TYPE_STAMP: return kToolStamp;
76 case TYPE_COPY: return kToolCopy; 80 case TYPE_COPY: return kToolCopy;
81 case TYPE_COPY_BUNDLE_DATA: return kToolCopyBundleData;
82 case TYPE_COMPILE_XCASSETS: return kToolCompileXCAssets;
77 default: 83 default:
78 NOTREACHED(); 84 NOTREACHED();
79 return std::string(); 85 return std::string();
80 } 86 }
81 } 87 }
82 88
83 const Tool* Toolchain::GetTool(ToolType type) const { 89 const Tool* Toolchain::GetTool(ToolType type) const {
84 DCHECK(type != TYPE_NONE); 90 DCHECK(type != TYPE_NONE);
85 return tools_[static_cast<size_t>(type)].get(); 91 return tools_[static_cast<size_t>(type)].get();
86 } 92 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 return Toolchain::TYPE_SOLINK; 153 return Toolchain::TYPE_SOLINK;
148 case Target::LOADABLE_MODULE: 154 case Target::LOADABLE_MODULE:
149 return Toolchain::TYPE_SOLINK_MODULE; 155 return Toolchain::TYPE_SOLINK_MODULE;
150 case Target::STATIC_LIBRARY: 156 case Target::STATIC_LIBRARY:
151 return Toolchain::TYPE_ALINK; 157 return Toolchain::TYPE_ALINK;
152 case Target::SOURCE_SET: 158 case Target::SOURCE_SET:
153 return TYPE_STAMP; 159 return TYPE_STAMP;
154 case Target::ACTION: 160 case Target::ACTION:
155 case Target::ACTION_FOREACH: 161 case Target::ACTION_FOREACH:
156 case Target::BUNDLE_DATA: 162 case Target::BUNDLE_DATA:
163 case Target::CREATE_BUNDLE:
157 case Target::COPY_FILES: 164 case Target::COPY_FILES:
158 return TYPE_STAMP; 165 return TYPE_STAMP;
159 default: 166 default:
160 NOTREACHED(); 167 NOTREACHED();
161 return Toolchain::TYPE_NONE; 168 return Toolchain::TYPE_NONE;
162 } 169 }
163 } 170 }
164 171
165 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const { 172 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const {
166 return tools_[GetToolTypeForTargetFinalOutput(target)].get(); 173 return tools_[GetToolTypeForTargetFinalOutput(target)].get();
167 } 174 }
OLDNEW
« no previous file with comments | « tools/gn/toolchain.h ('k') | tools/gn/variables.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698