summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudio10TargetGenerator.h
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2009-06-25 20:41:57 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2009-06-25 20:41:57 (GMT)
commit7491f52992450bc6853c44c28db646c6176cbfd0 (patch)
tree3ec314d959220760927dc3741e8e51bc64267471 /Source/cmVisualStudio10TargetGenerator.h
parent953439f738e98b463e2583cdbe1c756a7045eacb (diff)
downloadCMake-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.h81
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