Chromium Code Reviews| Index: tools/gn/visual_studio_utils.cc |
| diff --git a/tools/gn/visual_studio_utils.cc b/tools/gn/visual_studio_utils.cc |
| index 894472213dcf5102c74a3c3fa522fdba76945b94..4fc4cab7d488eafeb6a56ae59fedde0474642d54 100644 |
| --- a/tools/gn/visual_studio_utils.cc |
| +++ b/tools/gn/visual_studio_utils.cc |
| @@ -4,13 +4,20 @@ |
| #include "tools/gn/visual_studio_utils.h" |
| +#include <vector> |
| + |
| #include "base/md5.h" |
| +#include "base/strings/string_split.h" |
| #include "base/strings/string_util.h" |
| CompilerOptions::CompilerOptions() = default; |
| CompilerOptions::~CompilerOptions() = default; |
| +LinkerOptions::LinkerOptions() = default; |
| + |
| +LinkerOptions::~LinkerOptions() = default; |
| + |
| std::string MakeGuid(const std::string& entry_path, const std::string& seed) { |
| std::string str = base::ToUpperASCII(base::MD5String(seed + entry_path)); |
| return '{' + str.substr(0, 8) + '-' + str.substr(8, 4) + '-' + |
| @@ -115,3 +122,18 @@ void ParseCompilerOption(const std::string& cflag, CompilerOptions* options) { |
| // Put everything else into additional_options. |
| options->additional_options += cflag + ' '; |
| } |
| + |
| +// Parses |ldflags| value and stores it in |options|. |
| +void ParseLinkerOption(const std::string& ldflag, LinkerOptions* options) { |
| + const char kSubsytemPrefix[] ="/SUBSYSTEM:"; |
| + if (base::StartsWith(ldflag, kSubsytemPrefix, |
| + base::CompareCase::SENSITIVE)) { |
| + const std::string subsystem( |
| + ldflag.begin() + std::string(kSubsytemPrefix).length(), |
| + ldflag.end()); |
| + const std::vector<std::string> tokens = base::SplitString( |
| + subsystem, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
|
brettw
2016/10/20 18:07:49
Need 1 more space indent here :)
|
| + if (!tokens.empty()) |
| + options->subsystem = tokens[0]; |
| + } |
| +} |