public override void GeneratePlatformResourceFileList(IVcxprojGenerationContext context, IFileGenerator fileGenerator, Strings alreadyWrittenPriFiles, IList <Vcxproj.ProjectFile> resourceFiles, IList <Vcxproj.ProjectFile> imageResourceFiles) { // adding the durango resw file, if they were not in PRIFiles var resourceResw = new List <Vcxproj.ProjectFile>(); foreach (string file in context.Project.XResourcesResw) { var projectFile = new Vcxproj.ProjectFile(context, file); if (!alreadyWrittenPriFiles.Contains(projectFile.FileNameProjectRelative)) { resourceResw.Add(projectFile); } } if (resourceResw.Count > 0) { fileGenerator.Write(_projectFilesBegin); foreach (var projectFile in resourceResw) { using (fileGenerator.Declare("file", projectFile)) { fileGenerator.Write(_projectPriResource); } resourceFiles.Add(projectFile); } fileGenerator.Write(_projectFilesEnd); } // adding the durango img file if (context.Project.XResourcesImg.Count > 0) { fileGenerator.Write(_projectFilesBegin); foreach (string file in context.Project.XResourcesImg) { var projectFile = new Vcxproj.ProjectFile(context, file); using (fileGenerator.Declare("file", projectFile)) { fileGenerator.Write(_projectImgResource); } imageResourceFiles.Add(projectFile); } fileGenerator.Write(_projectFilesEnd); } // WARNING: THIS IS A PATCH TO ADD THE XMANIFEST FILE IN THE FILE LIST // This is not a clean way to do but it is the only way we found so far if (context.ProjectConfigurations.First().NeedsAppxManifestFile) { fileGenerator.Write(_projectFilesBegin); { string file = Sharpmake.Util.GetAppxManifestFileName(context.ProjectConfigurations.First()); var projectFile = new Vcxproj.ProjectFile(context, file); using (fileGenerator.Declare("file", projectFile)) { fileGenerator.Write(_projectFilesXManifest); } } fileGenerator.Write(_projectFilesEnd); } }
public bool IsValid(string file) { string extension = Path.GetExtension(file); if (FilterFiles.Count != 0 || FilterFilesExtensions.Count != 0) { if (!FilterFiles.Contains(file) && !FilterFilesExtensions.Contains(extension)) { return(false); } } if (ExcludeFiles.Contains(file)) { return(false); } if (ExcludeFilesExtensions.Contains(extension)) { return(false); } return(true); }
public static bool ShouldBreakOnSourcePath(Context context, Strings sourcePaths) { if (!IsEnabled) { return(false); } if (!BreakOnContext.HasFlag(context)) { return(false); } if (SourcePath != null) { if (sourcePaths.Contains(SourcePath)) { return(true); } foreach (string sourcePath in sourcePaths.Values) { if (ShouldBreakOnSourcePath(context, sourcePath)) { return(true); } } } return(false); }
public void AddSourceFile(string file) { if (!_visiting.Contains(file)) { _assemblyInfo._sourceFiles.Add(file); _visiting.Add(file); } }
public override void GeneratePlatformResourceFileList(IVcxprojGenerationContext context, IFileGenerator fileGenerator, Strings alreadyWrittenPriFiles, IList <Vcxproj.ProjectFile> resourceFiles, IList <Vcxproj.ProjectFile> imageResourceFiles) { // adding the durango resw file, if they were not in PRIFiles var resourceResw = new List <Vcxproj.ProjectFile>(); foreach (string file in context.Project.XResourcesResw) { var projectFile = new Vcxproj.ProjectFile(context, file); if (!alreadyWrittenPriFiles.Contains(projectFile.FileNameProjectRelative)) { resourceResw.Add(projectFile); } } if (resourceResw.Count > 0) { fileGenerator.Write(_projectFilesBegin); foreach (var projectFile in resourceResw) { using (fileGenerator.Declare("file", projectFile)) { fileGenerator.Write(_projectPriResource); } resourceFiles.Add(projectFile); } fileGenerator.Write(_projectFilesEnd); } // adding the durango img file if (context.Project.XResourcesImg.Count > 0) { fileGenerator.Write(_projectFilesBegin); foreach (string file in context.Project.XResourcesImg) { var projectFile = new Vcxproj.ProjectFile(context, file); using (fileGenerator.Declare("file", projectFile)) { fileGenerator.Write(_projectImgResource); } imageResourceFiles.Add(projectFile); } fileGenerator.Write(_projectFilesEnd); } // WARNING: THIS IS A PATCH TO ADD THE XMANIFEST FILE IN THE FILE LIST // This is not a clean way to do but it is the only way we found so far var manifestFiles = context.ProjectConfigurations .Where(x => x.Platform == Platform.durango && x.NeedsAppxManifestFile) .Select(Sharpmake.Util.GetAppxManifestFileName) .Distinct() .ToList(); if (manifestFiles.Count > 1) { throw new Error("conf.AppxManifestFilePath must be identical for all Durango configurations."); } else if (manifestFiles.Count == 1) { fileGenerator.Write(_projectFilesBegin); { var projectFile = new Vcxproj.ProjectFile(context, manifestFiles[0]); using (fileGenerator.Declare("file", projectFile)) { fileGenerator.Write(_projectFilesXManifest); } } fileGenerator.Write(_projectFilesEnd); } }