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

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

Issue 2428013002: Setting "SubSystem" option on "Link" page for Visual Studio project. (Closed)
Patch Set: Fixed missed space indent Created 4 years, 2 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/visual_studio_utils.h ('k') | tools/gn/visual_studio_utils_unittest.cc » ('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 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_utils.h" 5 #include "tools/gn/visual_studio_utils.h"
6 6
7 #include <vector>
8
7 #include "base/md5.h" 9 #include "base/md5.h"
10 #include "base/strings/string_split.h"
8 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
9 12
10 CompilerOptions::CompilerOptions() = default; 13 CompilerOptions::CompilerOptions() = default;
11 14
12 CompilerOptions::~CompilerOptions() = default; 15 CompilerOptions::~CompilerOptions() = default;
13 16
17 LinkerOptions::LinkerOptions() = default;
18
19 LinkerOptions::~LinkerOptions() = default;
20
14 std::string MakeGuid(const std::string& entry_path, const std::string& seed) { 21 std::string MakeGuid(const std::string& entry_path, const std::string& seed) {
15 std::string str = base::ToUpperASCII(base::MD5String(seed + entry_path)); 22 std::string str = base::ToUpperASCII(base::MD5String(seed + entry_path));
16 return '{' + str.substr(0, 8) + '-' + str.substr(8, 4) + '-' + 23 return '{' + str.substr(0, 8) + '-' + str.substr(8, 4) + '-' +
17 str.substr(12, 4) + '-' + str.substr(16, 4) + '-' + 24 str.substr(12, 4) + '-' + str.substr(16, 4) + '-' +
18 str.substr(20, 12) + '}'; 25 str.substr(20, 12) + '}';
19 } 26 }
20 27
21 #define SetOption(condition, member, value) \ 28 #define SetOption(condition, member, value) \
22 if (condition) { \ 29 if (condition) { \
23 options->member = value; \ 30 options->member = value; \
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 case 'w': 115 case 'w':
109 AppendOption(cflag.size() > 3 && cflag[2] == 'd', 116 AppendOption(cflag.size() > 3 && cflag[2] == 'd',
110 disable_specific_warnings, cflag.substr(3), ';') 117 disable_specific_warnings, cflag.substr(3), ';')
111 break; 118 break;
112 } 119 }
113 } 120 }
114 121
115 // Put everything else into additional_options. 122 // Put everything else into additional_options.
116 options->additional_options += cflag + ' '; 123 options->additional_options += cflag + ' ';
117 } 124 }
125
126 // Parses |ldflags| value and stores it in |options|.
127 void ParseLinkerOption(const std::string& ldflag, LinkerOptions* options) {
128 const char kSubsytemPrefix[] ="/SUBSYSTEM:";
129 if (base::StartsWith(ldflag, kSubsytemPrefix,
130 base::CompareCase::SENSITIVE)) {
131 const std::string subsystem(
132 ldflag.begin() + std::string(kSubsytemPrefix).length(),
133 ldflag.end());
134 const std::vector<std::string> tokens = base::SplitString(
135 subsystem, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
136 if (!tokens.empty())
137 options->subsystem = tokens[0];
138 }
139 }
OLDNEW
« no previous file with comments | « tools/gn/visual_studio_utils.h ('k') | tools/gn/visual_studio_utils_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698