1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmVisualStudio10TargetGenerator.h,v $
6 Date: $Date: 2009-07-13 20:58:24 $
7 Version: $Revision: 1.6 $
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 cmVisualStudioTargetGenerator_h
18 #define cmVisualStudioTargetGenerator_h
19 #include "cmStandardIncludes.h"
23 class cmGeneratedFileStream
;
24 class cmGlobalVisualStudio7Generator
;
26 class cmCustomCommand
;
27 class cmLocalVisualStudio7Generator
;
28 class cmComputeLinkInformation
;
29 #include "cmSourceGroup.h"
31 class cmVisualStudio10TargetGenerator
34 cmVisualStudio10TargetGenerator(cmTarget
* target
,
35 cmGlobalVisualStudio7Generator
* gg
);
36 ~cmVisualStudio10TargetGenerator();
38 // used by cmVisualStudioGeneratorOptions
39 void WritePlatformConfigTag(
43 const char* attribute
= 0,
45 std::ostream
* strm
= 0
49 void ConvertToWindowsSlash(std::string
& s
);
50 void WriteString(const char* line
, int indentLevel
);
51 void WriteProjectConfigurations();
52 void WriteProjectConfigurationValues();
53 void WriteCLSources();
54 void WriteObjSources();
55 void WritePathAndIncrementalLinkOptions();
56 void WriteItemDefinitionGroups();
57 void WriteClOptions(std::string
const& config
,
58 std::vector
<std::string
> const & includes
);
59 void WriteRCOptions(std::string
const& config
,
60 std::vector
<std::string
> const & includes
);
61 void WriteLinkOptions(std::string
const& config
);
62 void WriteMidlOptions(std::string
const& config
,
63 std::vector
<std::string
> const & includes
);
64 void OutputIncludes(std::vector
<std::string
> const & includes
);
65 void OutputLinkIncremental(std::string
const& configName
);
66 void WriteCustomRule(cmSourceFile
* source
,
67 cmCustomCommand
const & command
);
68 void WriteCustomCommands();
70 void WriteProjectReferences();
71 bool OutputSourceSpecificFlags(cmSourceFile
* source
);
72 void AddLibraries(cmComputeLinkInformation
& cli
, std::string
& libstring
);
73 void WriteLibOptions(std::string
const& config
);
74 void WriteEvents(std::string
const& configName
);
75 void WriteEvent(const char* name
, std::vector
<cmCustomCommand
> & commands
,
76 std::string
const& configName
);
77 void ComputeObjectNames();
78 void WriteGroupSources(const char* name
,
79 std::vector
<cmSourceFile
*> const& sources
,
80 std::vector
<cmSourceGroup
>& );
82 std::string ModuleDefinitionFile
;
83 std::string PathToVcxproj
;
89 cmGlobalVisualStudio7Generator
* GlobalGenerator
;
90 cmGeneratedFileStream
* BuildFileStream
;
91 cmLocalVisualStudio7Generator
* LocalGenerator
;