GetCppGeneratedFiles(IVsProject project, EnvDTE.Project dteproject, VCUtil vcutil, string projectDir, string item) { ThreadHelper.ThrowIfNotOnUIThread(); var fileset = new GeneratedFileSet { filename = item, sources = new Dictionary <string, List <string> >(), headers = new Dictionary <string, List <string> >() }; var outputDir = project.GetItemMetadata(item, "OutputDir"); var headerOutputDir = project.GetItemMetadata(item, "HeaderOutputDir"); var headerExt = project.GetItemMetadata(item, "HeaderExt"); var sourceExt = project.GetItemMetadata(item, "SourceExt"); foreach (EnvDTE.Configuration configuration in dteproject.ConfigurationManager) { var evaluatedOutputDir = vcutil.Evaluate(configuration, outputDir); var evaluatedHeaderOutputDir = string.IsNullOrEmpty(headerOutputDir) ? evaluatedOutputDir : vcutil.Evaluate(configuration, headerOutputDir); var cppFilename = string.Format("{0}.{1}", Path.GetFileNameWithoutExtension(item), sourceExt); var hFilename = string.Format("{0}.{1}", Path.GetFileNameWithoutExtension(item), headerExt); cppFilename = Path.GetFullPath(Path.Combine(projectDir, evaluatedOutputDir, cppFilename)); hFilename = Path.GetFullPath(Path.Combine(projectDir, evaluatedHeaderOutputDir, hFilename)); if (fileset.sources.ContainsKey(cppFilename)) { fileset.sources[cppFilename].Add(ConfigurationString(configuration)); } else { var configurations = new List <string>(); configurations.Add(ConfigurationString(configuration)); fileset.sources[cppFilename] = configurations; } if (fileset.headers.ContainsKey(hFilename)) { fileset.headers[hFilename].Add(ConfigurationString(configuration)); } else { var configurations = new List <string>(); configurations.Add(ConfigurationString(configuration)); fileset.headers[hFilename] = configurations; } } return(fileset); }
GetCsharpGeneratedFiles(IVsProject project, EnvDTE.Project dteproject, string projectDir, string item) { ThreadHelper.ThrowIfNotOnUIThread(); var fileset = new GeneratedFileSet { filename = item, sources = new Dictionary <string, List <string> >(), headers = new Dictionary <string, List <string> >() }; var propertyStorage = project as IVsBuildPropertyStorage; var outputDir = project.GetItemMetadata(item, "OutputDir"); foreach (EnvDTE.Configuration configuration in dteproject.ConfigurationManager) { var configName = string.Format("{0}|{1}", configuration.ConfigurationName, configuration.PlatformName); var evaluatedOutputDir = Evaluate(propertyStorage, configName, outputDir); var csFilename = string.Format("{0}.cs", Path.GetFileNameWithoutExtension(item)); csFilename = Path.GetFullPath(Path.Combine(projectDir, evaluatedOutputDir, csFilename)); if (fileset.sources.ContainsKey(csFilename)) { fileset.sources[csFilename].Add( string.Format("{0}|{1}", configuration.ConfigurationName, configuration.PlatformName)); } else { var configurations = new List <string>(); configurations.Add( string.Format("{0}|{1}", configuration.ConfigurationName, configuration.PlatformName)); fileset.sources[csFilename] = configurations; } } return(fileset); }