diff options
Diffstat (limited to 'Source/cmVisualStudioGeneratorOptions.h')
-rw-r--r-- | Source/cmVisualStudioGeneratorOptions.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h new file mode 100644 index 0000000..9951033 --- /dev/null +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -0,0 +1,82 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef cmVisualStudioGeneratorOptions_h +#define cmVisualStudioGeneratorOptions_h + +#include "cmLocalVisualStudioGenerator.h" + +#include "cmIDEOptions.h" +typedef cmIDEFlagTable cmVS7FlagTable; + +class cmVisualStudio10TargetGenerator; + +//---------------------------------------------------------------------------- +class cmVisualStudioGeneratorOptions: public cmIDEOptions +{ +public: + // Construct an options table for a given tool. + enum Tool + { + Compiler, + ResourceCompiler, + MasmCompiler, + Linker, + FortranCompiler + }; + cmVisualStudioGeneratorOptions(cmLocalVisualStudioGenerator* lg, + Tool tool, + cmVS7FlagTable const* table, + cmVS7FlagTable const* extraTable = 0, + cmVisualStudio10TargetGenerator* g = 0); + + // Store options from command line flags. + void Parse(const char* flags); + void ParseFinish(); + + // Fix the ExceptionHandling option to default to off. + void FixExceptionHandlingDefault(); + + // Store options for verbose builds. + void SetVerboseMakefile(bool verbose); + + // Check for specific options. + bool UsingUnicode() const; + bool UsingSBCS() const; + + bool IsDebug() const; + bool IsWinRt() const; + // Write options to output. + void OutputPreprocessorDefinitions(std::ostream& fout, + const char* prefix, + const char* suffix, + const std::string& lang); + void OutputFlagMap(std::ostream& fout, const char* indent); + void OutputAdditionalOptions(std::ostream& fout, + const char* prefix, + const char* suffix); + void SetConfiguration(const char* config); +private: + cmLocalVisualStudioGenerator* LocalGenerator; + cmLocalVisualStudioGenerator::VSVersion Version; + + std::string Configuration; + Tool CurrentTool; + cmVisualStudio10TargetGenerator* TargetGenerator; + + bool FortranRuntimeDebug; + bool FortranRuntimeDLL; + bool FortranRuntimeMT; + + virtual void StoreUnknownFlag(const char* flag); +}; + +#endif |