diff options
Diffstat (limited to 'Source/cmVisualStudio10TargetGenerator.h')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.h | 172 |
1 files changed, 92 insertions, 80 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.h b/Source/cmVisualStudio10TargetGenerator.h index 33d4fb7..15e47b4 100644 --- a/Source/cmVisualStudio10TargetGenerator.h +++ b/Source/cmVisualStudio10TargetGenerator.h @@ -17,11 +17,11 @@ class cmCustomCommand; class cmGeneratedFileStream; class cmGeneratorTarget; class cmGlobalVisualStudio10Generator; -class cmLocalVisualStudio7Generator; +class cmLocalVisualStudio10Generator; class cmMakefile; class cmSourceFile; class cmSourceGroup; -class cmVisualStudioGeneratorOptions; +class cmVS10GeneratorOptions; class cmVisualStudio10TargetGenerator { @@ -32,10 +32,6 @@ public: cmGlobalVisualStudio10Generator* gg); ~cmVisualStudio10TargetGenerator(); void Generate(); - // used by cmVisualStudioGeneratorOptions - void WritePlatformConfigTag(const char* tag, const std::string& config, - int indentLevel, const char* attribute = 0, - const char* end = 0, std::ostream* strm = 0); private: struct ToolSource @@ -53,107 +49,116 @@ private: std::vector<std::string> Configs; }; + struct Elem; + struct OptionsHelper; + std::string ConvertPath(std::string const& path, bool forceRelative); - void WriteString(const char* line, int indentLevel); - void WriteProjectConfigurations(); - void WriteProjectConfigurationValues(); - void WriteMSToolConfigurationValues(std::string const& config); - void WriteMSToolConfigurationValuesManaged(std::string const& config); - void WriteHeaderSource(cmSourceFile const* sf); - void WriteExtraSource(cmSourceFile const* sf); - void WriteNsightTegraConfigurationValues(std::string const& config); - void WriteSource(std::string const& tool, cmSourceFile const* sf, - const char* end = 0); - void WriteExcludeFromBuild(std::vector<size_t> const& exclude_configs); - void WriteAllSources(); - void WriteDotNetReferences(); - void WriteDotNetReference(std::string const& ref, std::string const& hint); - void WriteDotNetReferenceCustomTags(std::string const& ref); - void WriteEmbeddedResourceGroup(); - void WriteWinRTReferences(); - void WriteWinRTPackageCertificateKeyFile(); - void WriteXamlFilesGroup(); - void WritePathAndIncrementalLinkOptions(); - void WriteItemDefinitionGroups(); + std::string CalcCondition(const std::string& config) const; + void WriteProjectConfigurations(Elem& e0); + void WriteProjectConfigurationValues(Elem& e0); + void WriteMSToolConfigurationValues(Elem& e1, std::string const& config); + void WriteMSToolConfigurationValuesManaged(Elem& e1, + std::string const& config); + void WriteHeaderSource(Elem& e1, cmSourceFile const* sf); + void WriteExtraSource(Elem& e1, cmSourceFile const* sf); + void WriteNsightTegraConfigurationValues(Elem& e1, + std::string const& config); + void WriteSource(Elem& e2, std::string const& tool, cmSourceFile const* sf); + void WriteExcludeFromBuild(Elem& e2, + std::vector<size_t> const& exclude_configs); + void WriteAllSources(Elem& e0); + void WriteDotNetReferences(Elem& e0); + void WriteDotNetReference(Elem& e1, std::string const& ref, + std::string const& hint, + std::string const& config); + void WriteDotNetReferenceCustomTags(Elem& e2, std::string const& ref); + void WriteEmbeddedResourceGroup(Elem& e0); + void WriteWinRTReferences(Elem& e0); + void WriteWinRTPackageCertificateKeyFile(Elem& e0); + void WriteXamlFilesGroup(Elem& e0); + void WritePathAndIncrementalLinkOptions(Elem& e0); + void WriteItemDefinitionGroups(Elem& e0); void VerifyNecessaryFiles(); - void WriteMissingFiles(); - void WriteMissingFilesWP80(); - void WriteMissingFilesWP81(); - void WriteMissingFilesWS80(); - void WriteMissingFilesWS81(); - void WriteMissingFilesWS10_0(); - void WritePlatformExtensions(); - void WriteSinglePlatformExtension(std::string const& extension, + void WriteMissingFiles(Elem& e1); + void WriteMissingFilesWP80(Elem& e1); + void WriteMissingFilesWP81(Elem& e1); + void WriteMissingFilesWS80(Elem& e1); + void WriteMissingFilesWS81(Elem& e1); + void WriteMissingFilesWS10_0(Elem& e1); + void WritePlatformExtensions(Elem& e1); + void WriteSinglePlatformExtension(Elem& e1, std::string const& extension, std::string const& version); - void WriteSDKReferences(); - void WriteSingleSDKReference(std::string const& extension, + void WriteSDKReferences(Elem& e0); + void WriteSingleSDKReference(Elem& e1, std::string const& extension, std::string const& version); - void WriteCommonMissingFiles(const std::string& manifestFile); - void WriteTargetSpecificReferences(); - void WriteTargetsFileReferences(); + void WriteCommonMissingFiles(Elem& e1, const std::string& manifestFile); + void WriteTargetSpecificReferences(Elem& e0); + void WriteTargetsFileReferences(Elem& e1); std::vector<std::string> GetIncludes(std::string const& config, std::string const& lang) const; bool ComputeClOptions(); bool ComputeClOptions(std::string const& configName); - void WriteClOptions(std::string const& config); + void WriteClOptions(Elem& e1, std::string const& config); bool ComputeRcOptions(); bool ComputeRcOptions(std::string const& config); - void WriteRCOptions(std::string const& config); + void WriteRCOptions(Elem& e1, std::string const& config); bool ComputeCudaOptions(); bool ComputeCudaOptions(std::string const& config); - void WriteCudaOptions(std::string const& config); + void WriteCudaOptions(Elem& e1, std::string const& config); bool ComputeCudaLinkOptions(); bool ComputeCudaLinkOptions(std::string const& config); - void WriteCudaLinkOptions(std::string const& config); + void WriteCudaLinkOptions(Elem& e1, std::string const& config); bool ComputeMasmOptions(); bool ComputeMasmOptions(std::string const& config); - void WriteMasmOptions(std::string const& config); + void WriteMasmOptions(Elem& e1, std::string const& config); bool ComputeNasmOptions(); bool ComputeNasmOptions(std::string const& config); - void WriteNasmOptions(std::string const& config); + void WriteNasmOptions(Elem& e1, std::string const& config); bool ComputeLinkOptions(); bool ComputeLinkOptions(std::string const& config); bool ComputeLibOptions(); bool ComputeLibOptions(std::string const& config); - void WriteLinkOptions(std::string const& config); - void WriteMidlOptions(std::string const& config); - void WriteAntBuildOptions(std::string const& config); - void OutputLinkIncremental(std::string const& configName); - void WriteCustomRule(cmSourceFile const* source, + void WriteLinkOptions(Elem& e1, std::string const& config); + void WriteMidlOptions(Elem& e1, std::string const& config); + void WriteAntBuildOptions(Elem& e1, std::string const& config); + void OutputLinkIncremental(Elem& e1, std::string const& configName); + void WriteCustomRule(Elem& e0, cmSourceFile const* source, cmCustomCommand const& command); - void WriteCustomRuleCpp(std::string const& config, std::string const& script, - std::string const& inputs, + void WriteCustomRuleCpp(Elem& e2, std::string const& config, + std::string const& script, std::string const& inputs, std::string const& outputs, std::string const& comment); - void WriteCustomRuleCSharp(std::string const& config, + void WriteCustomRuleCSharp(Elem& e0, std::string const& config, std::string const& commandName, std::string const& script, std::string const& inputs, std::string const& outputs, std::string const& comment); - void WriteCustomCommands(); - void WriteCustomCommand(cmSourceFile const* sf); + void WriteCustomCommands(Elem& e0); + void WriteCustomCommand(Elem& e0, cmSourceFile const* sf); void WriteGroups(); - void WriteProjectReferences(); - void WriteApplicationTypeSettings(); - bool OutputSourceSpecificFlags(cmSourceFile const* source); - void AddLibraries(cmComputeLinkInformation& cli, + void WriteProjectReferences(Elem& e0); + void WriteApplicationTypeSettings(Elem& e1); + void OutputSourceSpecificFlags(Elem& e2, cmSourceFile const* source); + void AddLibraries(const cmComputeLinkInformation& cli, std::vector<std::string>& libVec, - std::vector<std::string>& vsTargetVec); + std::vector<std::string>& vsTargetVec, + const std::string& config); void AddTargetsFileAndConfigPair(std::string const& targetsFile, std::string const& config); - void WriteLibOptions(std::string const& config); - void WriteManifestOptions(std::string const& config); - void WriteEvents(std::string const& configName); - void WriteEvent(const char* name, + void WriteLibOptions(Elem& e1, std::string const& config); + void WriteManifestOptions(Elem& e1, std::string const& config); + void WriteEvents(Elem& e1, std::string const& configName); + void WriteEvent(Elem& e1, const char* name, std::vector<cmCustomCommand> const& commands, std::string const& configName); - void WriteGroupSources(const char* name, ToolSources const& sources, + void WriteGroupSources(Elem& e0, std::string const& name, + ToolSources const& sources, std::vector<cmSourceGroup>&); void AddMissingSourceGroups(std::set<cmSourceGroup*>& groupsUsed, const std::vector<cmSourceGroup>& allGroups); @@ -166,11 +171,12 @@ private: void GetCSharpSourceProperties(cmSourceFile const* sf, std::map<std::string, std::string>& tags); void WriteCSharpSourceProperties( - const std::map<std::string, std::string>& tags); + Elem& e2, const std::map<std::string, std::string>& tags); void GetCSharpSourceLink(cmSourceFile const* sf, std::string& link); private: - typedef cmVisualStudioGeneratorOptions Options; + friend class cmVS10GeneratorOptions; + typedef cmVS10GeneratorOptions Options; typedef std::map<std::string, std::unique_ptr<Options>> OptionsMap; OptionsMap ClOptions; OptionsMap RcOptions; @@ -180,8 +186,6 @@ private: OptionsMap NasmOptions; OptionsMap LinkOptions; std::string LangForClCompile; - std::string PathToProjectFile; - std::string ProjectFileExtension; enum VsProjectType { vcxproj, @@ -190,24 +194,32 @@ private: bool InSourceBuild; std::vector<std::string> Configurations; std::vector<TargetsFileAndConfigs> TargetsFileAndConfigsVec; - cmGeneratorTarget* GeneratorTarget; - cmMakefile* Makefile; - std::string Platform; - std::string GUID; - std::string Name; + cmGeneratorTarget* const GeneratorTarget; + cmMakefile* const Makefile; + std::string const Platform; + std::string const Name; + std::string const GUID; bool MSTools; bool Managed; bool NsightTegra; - int NsightTegraVersion[4]; + unsigned int NsightTegraVersion[4]; bool TargetCompileAsWinRT; - cmGlobalVisualStudio10Generator* GlobalGenerator; - cmGeneratedFileStream* BuildFileStream; - cmLocalVisualStudio7Generator* LocalGenerator; - std::set<cmSourceFile const*> SourcesVisited; + cmGlobalVisualStudio10Generator* const GlobalGenerator; + cmLocalVisualStudio10Generator* const LocalGenerator; std::set<std::string> CSharpCustomCommandNames; bool IsMissingFiles; std::vector<std::string> AddedFiles; std::string DefaultArtifactDir; + bool AddedDefaultCertificate = false; + // managed C++/C# relevant members + typedef std::pair<std::string, std::string> DotNetHintReference; + typedef std::vector<DotNetHintReference> DotNetHintReferenceList; + typedef std::map<std::string, DotNetHintReferenceList> + DotNetHintReferenceMap; + DotNetHintReferenceMap DotNetHintReferences; + typedef std::set<std::string> UsingDirectories; + typedef std::map<std::string, UsingDirectories> UsingDirectoriesMap; + UsingDirectoriesMap AdditionalUsingDirectories; typedef std::map<std::string, ToolSources> ToolSourceMap; ToolSourceMap Tools; |