| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef TOOLS_GN_VISUAL_STUDIO_UTILS_H_ |
| #define TOOLS_GN_VISUAL_STUDIO_UTILS_H_ |
| |
| #include <string> |
| |
| // Some compiler options which will be written to project file. We don't need to |
| // specify all options because generated project file is going to be used only |
| // for compilation of single file. For real build ninja files are used. |
| struct CompilerOptions { |
| CompilerOptions(); |
| ~CompilerOptions(); |
| |
| std::string additional_options; |
| std::string buffer_security_check; |
| std::string forced_include_files; |
| std::string disable_specific_warnings; |
| std::string optimization; |
| std::string runtime_library; |
| std::string treat_warning_as_error; |
| std::string warning_level; |
| }; |
| |
| // Some linker options which will be written to project file. We don't need to |
| // specify all options because generated project file is going to be used only |
| // for compilation of single file. For real build ninja files are used. |
| struct LinkerOptions { |
| LinkerOptions(); |
| ~LinkerOptions(); |
| |
| std::string subsystem; |
| }; |
| |
| // Generates something which looks like a GUID, but depends only on the name and |
| // seed. This means the same name / seed will always generate the same GUID, so |
| // that projects and solutions which refer to each other can explicitly |
| // determine the GUID to refer to explicitly. It also means that the GUID will |
| // not change when the project for a target is rebuilt. |
| std::string MakeGuid(const std::string& entry_path, const std::string& seed); |
| |
| // Parses |cflag| value and stores it in |options|. |
| void ParseCompilerOption(const std::string& cflag, CompilerOptions* options); |
| |
| // Parses |ldflags| value and stores it in |options|. |
| void ParseLinkerOption(const std::string& ldflag, LinkerOptions* options); |
| |
| #endif // TOOLS_GN_VISUAL_STUDIO_UTILS_H_ |