diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2009-06-25 20:41:57 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2009-06-25 20:41:57 (GMT) |
commit | 7491f52992450bc6853c44c28db646c6176cbfd0 (patch) | |
tree | 3ec314d959220760927dc3741e8e51bc64267471 /Source/cmVisualStudio10TargetGenerator.h | |
parent | 953439f738e98b463e2583cdbe1c756a7045eacb (diff) | |
download | CMake-7491f52992450bc6853c44c28db646c6176cbfd0.zip CMake-7491f52992450bc6853c44c28db646c6176cbfd0.tar.gz CMake-7491f52992450bc6853c44c28db646c6176cbfd0.tar.bz2 |
ENH: first pass at VS 10, can bootstrap CMake, but many tests still fail
Diffstat (limited to 'Source/cmVisualStudio10TargetGenerator.h')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.h b/Source/cmVisualStudio10TargetGenerator.h new file mode 100644 index 0000000..618b993 --- /dev/null +++ b/Source/cmVisualStudio10TargetGenerator.h @@ -0,0 +1,81 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmVisualStudioTargetGenerator_h +#define cmVisualStudioTargetGenerator_h +#include "cmStandardIncludes.h" + +class cmTarget; +class cmMakefile; +class cmGeneratedFileStream; +class cmGlobalVisualStudio7Generator; +class cmSourceFile; +class cmCustomCommand; +class cmLocalVisualStudio7Generator; +class cmComputeLinkInformation; + +class cmVisualStudio10TargetGenerator +{ +public: + cmVisualStudio10TargetGenerator(cmTarget* target, + cmGlobalVisualStudio7Generator* gg); + ~cmVisualStudio10TargetGenerator(); + void Generate(); + // used by cmVisualStudioGeneratorOptions + void WritePlatformConfigTag( + const char* tag, + const char* config, + int indentLevel, + const char* attribute = 0, + const char* end = 0, + std::ostream* strm = 0 + ); + +private: + void ConvertToWindowsSlash(std::string& s); + void WriteString(const char* line, int indentLevel); + void WriteProjectConfigurations(); + void WriteProjectConfigurationValues(); + void WriteSources(); + void WritePathAndIncrementalLinkOptions(); + void WriteItemDefinitionGroups(); + void WriteClOptions(std::string const& config, + std::vector<std::string> const & includes); + void WriteRCOptions(std::string const& config, + std::vector<std::string> const & includes); + void WriteLinkOptions(std::string const& config); + void WriteMidlOptions(std::string const& config, + std::vector<std::string> const & includes); + void OutputIncludes(std::vector<std::string> const & includes); + void OutputLinkIncremental(std::string const& configName); + void WriteCustomRule(cmSourceFile* source, + cmCustomCommand const & command); + void WriteCustomCommands(); + void WriteGroups(); + void WriteProjectReferences(); + bool OutputSourceSpecificFlags(cmSourceFile* source); + void AddLibraries(cmComputeLinkInformation& cli, std::string& libstring); +private: + cmTarget* Target; + cmMakefile* Makefile; + std::string Platform; + std::string GUID; + cmGlobalVisualStudio7Generator* GlobalGenerator; + cmGeneratedFileStream* BuildFileStream; + cmLocalVisualStudio7Generator* LocalGenerator; +}; + +#endif |