Introduce "generator expressions" to add_test()
[cmake.git] / Source / cmVisualStudioGeneratorOptions.h
blob504cdc30e45704f5ea27517b0ade6208c475eccf
1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmVisualStudioGeneratorOptions.h,v $
5 Language: C++
6 Date: $Date: 2009-07-29 15:29:08 $
7 Version: $Revision: 1.3 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
17 #ifndef cmVisualStudioGeneratorOptions_h
18 #define cmVisualStudioGeneratorOptions_h
20 #include "cmLocalGenerator.h"
22 #include "cmIDEOptions.h"
23 typedef cmIDEFlagTable cmVS7FlagTable;
25 class cmVisualStudio10TargetGenerator;
27 //----------------------------------------------------------------------------
28 class cmVisualStudioGeneratorOptions: public cmIDEOptions
30 public:
31 // Construct an options table for a given tool.
32 enum Tool
34 Compiler,
35 Linker,
36 FortranCompiler
38 cmVisualStudioGeneratorOptions(cmLocalGenerator* lg,
39 int version,
40 Tool tool,
41 cmVS7FlagTable const* table,
42 cmVS7FlagTable const* extraTable = 0,
43 cmVisualStudio10TargetGenerator* g = 0);
45 // Store options from command line flags.
46 void Parse(const char* flags);
48 // Fix the ExceptionHandling option to default to off.
49 void FixExceptionHandlingDefault();
51 // Store options for verbose builds.
52 void SetVerboseMakefile(bool verbose);
54 // Check for specific options.
55 bool UsingUnicode();
57 bool IsDebug();
58 // Write options to output.
59 void OutputPreprocessorDefinitions(std::ostream& fout,
60 const char* prefix,
61 const char* suffix);
62 void OutputFlagMap(std::ostream& fout, const char* indent);
63 void OutputAdditionalOptions(std::ostream& fout,
64 const char* prefix,
65 const char* suffix);
66 void SetConfiguration(const char* config);
67 private:
68 cmLocalGenerator* LocalGenerator;
69 int Version;
71 std::string Configuration;
72 Tool CurrentTool;
73 cmVisualStudio10TargetGenerator* TargetGenerator;
75 virtual void StoreUnknownFlag(const char* flag);
78 #endif