OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/visual_studio_writer.h" | 5 #include "tools/gn/visual_studio_writer.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <iterator> | 8 #include <iterator> |
9 #include <map> | 9 #include <map> |
10 #include <memory> | 10 #include <memory> |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 base::StringPiece FindParentDir(const std::string* path) { | 159 base::StringPiece FindParentDir(const std::string* path) { |
160 DCHECK(path && !path->empty()); | 160 DCHECK(path && !path->empty()); |
161 for (int i = static_cast<int>(path->size()) - 2; i >= 0; --i) { | 161 for (int i = static_cast<int>(path->size()) - 2; i >= 0; --i) { |
162 if (IsSlash((*path)[i])) | 162 if (IsSlash((*path)[i])) |
163 return base::StringPiece(path->data(), i); | 163 return base::StringPiece(path->data(), i); |
164 } | 164 } |
165 return base::StringPiece(); | 165 return base::StringPiece(); |
166 } | 166 } |
167 | 167 |
168 bool FilterTargets(const BuildSettings* build_settings, | 168 bool FilterTargets(const BuildSettings* build_settings, |
169 Builder* builder, | 169 const Builder& builder, |
170 const std::string& dir_filters, | 170 const std::string& dir_filters, |
171 std::vector<const Target*>* targets, | 171 std::vector<const Target*>* targets, |
172 Err* err) { | 172 Err* err) { |
173 if (dir_filters.empty()) { | 173 if (dir_filters.empty()) { |
174 *targets = builder->GetAllResolvedTargets(); | 174 *targets = builder.GetAllResolvedTargets(); |
175 return true; | 175 return true; |
176 } | 176 } |
177 | 177 |
178 std::vector<LabelPattern> filters; | 178 std::vector<LabelPattern> filters; |
179 if (!commands::FilterPatternsFromString(build_settings, dir_filters, &filters, | 179 if (!commands::FilterPatternsFromString(build_settings, dir_filters, &filters, |
180 err)) | 180 err)) |
181 return false; | 181 return false; |
182 | 182 |
183 commands::FilterTargetsByPatterns(builder->GetAllResolvedTargets(), filters, | 183 commands::FilterTargetsByPatterns(builder.GetAllResolvedTargets(), filters, |
184 targets); | 184 targets); |
185 | 185 |
186 std::set<Label> labels; | 186 std::set<Label> labels; |
187 std::queue<const Target*> to_process; | 187 std::queue<const Target*> to_process; |
188 for (const Target* target : *targets) { | 188 for (const Target* target : *targets) { |
189 labels.insert(target->label()); | 189 labels.insert(target->label()); |
190 to_process.push(target); | 190 to_process.push(target); |
191 } | 191 } |
192 | 192 |
193 while (!to_process.empty()) { | 193 while (!to_process.empty()) { |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 } | 262 } |
263 | 263 |
264 windows_kits_include_dirs_ = GetWindowsKitsIncludeDirs(); | 264 windows_kits_include_dirs_ = GetWindowsKitsIncludeDirs(); |
265 } | 265 } |
266 | 266 |
267 VisualStudioWriter::~VisualStudioWriter() { | 267 VisualStudioWriter::~VisualStudioWriter() { |
268 } | 268 } |
269 | 269 |
270 // static | 270 // static |
271 bool VisualStudioWriter::RunAndWriteFiles(const BuildSettings* build_settings, | 271 bool VisualStudioWriter::RunAndWriteFiles(const BuildSettings* build_settings, |
272 Builder* builder, | 272 const Builder& builder, |
273 Version version, | 273 Version version, |
274 const std::string& sln_name, | 274 const std::string& sln_name, |
275 const std::string& dir_filters, | 275 const std::string& dir_filters, |
276 Err* err) { | 276 Err* err) { |
277 std::vector<const Target*> targets; | 277 std::vector<const Target*> targets; |
278 if (!FilterTargets(build_settings, builder, dir_filters, &targets, err)) | 278 if (!FilterTargets(build_settings, builder, dir_filters, &targets, err)) |
279 return false; | 279 return false; |
280 | 280 |
281 const char* config_platform = "Win32"; | 281 const char* config_platform = "Win32"; |
282 | 282 |
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 } | 832 } |
833 } | 833 } |
834 | 834 |
835 std::string VisualStudioWriter::GetNinjaTarget(const Target* target) { | 835 std::string VisualStudioWriter::GetNinjaTarget(const Target* target) { |
836 std::ostringstream ninja_target_out; | 836 std::ostringstream ninja_target_out; |
837 DCHECK(!target->dependency_output_file().value().empty()); | 837 DCHECK(!target->dependency_output_file().value().empty()); |
838 ninja_path_output_.WriteFile(ninja_target_out, | 838 ninja_path_output_.WriteFile(ninja_target_out, |
839 target->dependency_output_file()); | 839 target->dependency_output_file()); |
840 return ninja_target_out.str(); | 840 return ninja_target_out.str(); |
841 } | 841 } |
OLD | NEW |