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

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

Issue 1606553002: Add support for Mac/iOS application bundles to GN tool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add unit tests & support for bundle_data_filter Created 4 years, 10 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 28
28 Toolchain::Toolchain(const Settings* settings, const Label& label) 29 Toolchain::Toolchain(const Settings* settings, const Label& label)
29 : Item(settings, label), 30 : Item(settings, label),
30 concurrent_links_(0), 31 concurrent_links_(0),
31 setup_complete_(false) { 32 setup_complete_(false) {
32 } 33 }
33 34
34 Toolchain::~Toolchain() { 35 Toolchain::~Toolchain() {
35 } 36 }
36 37
(...skipping 12 matching lines...) Expand all
49 if (str == kToolObjC) return TYPE_OBJC; 50 if (str == kToolObjC) return TYPE_OBJC;
50 if (str == kToolObjCxx) return TYPE_OBJCXX; 51 if (str == kToolObjCxx) return TYPE_OBJCXX;
51 if (str == kToolRc) return TYPE_RC; 52 if (str == kToolRc) return TYPE_RC;
52 if (str == kToolAsm) return TYPE_ASM; 53 if (str == kToolAsm) return TYPE_ASM;
53 if (str == kToolAlink) return TYPE_ALINK; 54 if (str == kToolAlink) return TYPE_ALINK;
54 if (str == kToolSolink) return TYPE_SOLINK; 55 if (str == kToolSolink) return TYPE_SOLINK;
55 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE; 56 if (str == kToolSolinkModule) return TYPE_SOLINK_MODULE;
56 if (str == kToolLink) return TYPE_LINK; 57 if (str == kToolLink) return TYPE_LINK;
57 if (str == kToolStamp) return TYPE_STAMP; 58 if (str == kToolStamp) return TYPE_STAMP;
58 if (str == kToolCopy) return TYPE_COPY; 59 if (str == kToolCopy) return TYPE_COPY;
60 if (str == kToolCopyBundleData) return TYPE_COPY_BUNDLE_DATA;
59 return TYPE_NONE; 61 return TYPE_NONE;
60 } 62 }
61 63
62 // static 64 // static
63 std::string Toolchain::ToolTypeToName(ToolType type) { 65 std::string Toolchain::ToolTypeToName(ToolType type) {
64 switch (type) { 66 switch (type) {
65 case TYPE_CC: return kToolCc; 67 case TYPE_CC: return kToolCc;
66 case TYPE_CXX: return kToolCxx; 68 case TYPE_CXX: return kToolCxx;
67 case TYPE_OBJC: return kToolObjC; 69 case TYPE_OBJC: return kToolObjC;
68 case TYPE_OBJCXX: return kToolObjCxx; 70 case TYPE_OBJCXX: return kToolObjCxx;
69 case TYPE_RC: return kToolRc; 71 case TYPE_RC: return kToolRc;
70 case TYPE_ASM: return kToolAsm; 72 case TYPE_ASM: return kToolAsm;
71 case TYPE_ALINK: return kToolAlink; 73 case TYPE_ALINK: return kToolAlink;
72 case TYPE_SOLINK: return kToolSolink; 74 case TYPE_SOLINK: return kToolSolink;
73 case TYPE_SOLINK_MODULE: return kToolSolinkModule; 75 case TYPE_SOLINK_MODULE: return kToolSolinkModule;
74 case TYPE_LINK: return kToolLink; 76 case TYPE_LINK: return kToolLink;
75 case TYPE_STAMP: return kToolStamp; 77 case TYPE_STAMP: return kToolStamp;
76 case TYPE_COPY: return kToolCopy; 78 case TYPE_COPY: return kToolCopy;
79 case TYPE_COPY_BUNDLE_DATA: return kToolCopyBundleData;
77 default: 80 default:
78 NOTREACHED(); 81 NOTREACHED();
79 return std::string(); 82 return std::string();
80 } 83 }
81 } 84 }
82 85
83 const Tool* Toolchain::GetTool(ToolType type) const { 86 const Tool* Toolchain::GetTool(ToolType type) const {
84 DCHECK(type != TYPE_NONE); 87 DCHECK(type != TYPE_NONE);
85 return tools_[static_cast<size_t>(type)].get(); 88 return tools_[static_cast<size_t>(type)].get();
86 } 89 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 return Toolchain::TYPE_LINK; 148 return Toolchain::TYPE_LINK;
146 case Target::SHARED_LIBRARY: 149 case Target::SHARED_LIBRARY:
147 return Toolchain::TYPE_SOLINK; 150 return Toolchain::TYPE_SOLINK;
148 case Target::LOADABLE_MODULE: 151 case Target::LOADABLE_MODULE:
149 return Toolchain::TYPE_SOLINK_MODULE; 152 return Toolchain::TYPE_SOLINK_MODULE;
150 case Target::STATIC_LIBRARY: 153 case Target::STATIC_LIBRARY:
151 return Toolchain::TYPE_ALINK; 154 return Toolchain::TYPE_ALINK;
152 case Target::SOURCE_SET: 155 case Target::SOURCE_SET:
153 return TYPE_STAMP; 156 return TYPE_STAMP;
154 case Target::COPY_FILES: 157 case Target::COPY_FILES:
158 case Target::COPY_BUNDLE_DATA:
155 case Target::ACTION: 159 case Target::ACTION:
156 case Target::ACTION_FOREACH: 160 case Target::ACTION_FOREACH:
157 return TYPE_STAMP; 161 return TYPE_STAMP;
158 default: 162 default:
159 NOTREACHED(); 163 NOTREACHED();
160 return Toolchain::TYPE_NONE; 164 return Toolchain::TYPE_NONE;
161 } 165 }
162 } 166 }
163 167
164 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const { 168 const Tool* Toolchain::GetToolForTargetFinalOutput(const Target* target) const {
165 return tools_[GetToolTypeForTargetFinalOutput(target)].get(); 169 return tools_[GetToolTypeForTargetFinalOutput(target)].get();
166 } 170 }
OLDNEW
« tools/gn/function_toolchain.cc ('K') | « tools/gn/toolchain.h ('k') | tools/gn/variables.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698