public void Clean() { if (Project == null) { return; } currentBuild = BuildStep.Clean; BuildStatusChanged?.BeginInvoke(this, BuildStep.Clean, null, null); buildingThread = new System.Threading.Thread(new System.Threading.ThreadStart(delegate() { string outputDir = getOutputDir(); IsBuilding = true; foreach (var file in cache.Files.Where(x => x.Value.IsBuilt(outputDir)).Select(x => x.Value.InputFile)) { ContentFile item; if (builtFiles.TryGetValue(file, out item)) { ItemProgress?.BeginInvoke(this, new ItemProgressEventArgs(BuildStep.Clean, item), null, null); if (System.IO.File.Exists(getDestinationFileAbsolute(item))) { System.IO.File.Delete(getDestinationFileAbsolute(item)); } } } IsBuilding = false; BuildStatusChanged?.Invoke(this, BuildStep.Clean | BuildStep.Finished); })); buildingThread.Start(); }
private void BuildThread(ContentItem item) { FailedBuilds = 0; IsBuilding = true; string outputDir = GetOutputDir(); CreateFolderIfNeeded(outputDir); PipelineHelper.PreBuilt(Project); using (engenious.Content.Pipeline.ContentImporterContext importerContext = new engenious.Content.Pipeline.ContentImporterContext()) using (engenious.Content.Pipeline.ContentProcessorContext processorContext = new engenious.Content.Pipeline.ContentProcessorContext()) { importerContext.BuildMessage += RaiseBuildMessage; processorContext.BuildMessage += RaiseBuildMessage; if (item == null) { BuildDir(Project, importerContext, processorContext); } else if (item is ContentFolder) { BuildDir((ContentFolder)item, importerContext, processorContext); } else if (item is ContentFile) { BuildFile((ContentFile)item, importerContext, processorContext); } } //System.Threading.Thread.Sleep(8000); cache.Save(GetCacheFile()); IsBuilding = false; BuildStatusChanged?.BeginInvoke(this, BuildStep.Build | BuildStep.Finished, null, null); }
public void Build() { if (Project == null) { return; } currentBuild = BuildStep.Build; BuildStatusChanged?.BeginInvoke(this, BuildStep.Build, null, null); buildingThread = new System.Threading.Thread(new System.Threading.ThreadStart(delegate() { FailedBuilds = 0; IsBuilding = true; string outputDir = getOutputDir(); CreateFolderIfNeeded(outputDir); PipelineHelper.PreBuilt(Project); using (engenious.Content.Pipeline.ContentImporterContext importerContext = new engenious.Content.Pipeline.ContentImporterContext()) using (engenious.Content.Pipeline.ContentProcessorContext processorContext = new engenious.Content.Pipeline.ContentProcessorContext()) { importerContext.BuildMessage += RaiseBuildMessage; processorContext.BuildMessage += RaiseBuildMessage; buildDir(Project, importerContext, processorContext); } //System.Threading.Thread.Sleep(8000); cache.Save(getCacheFile()); IsBuilding = false; BuildStatusChanged?.BeginInvoke(this, BuildStep.Build | BuildStep.Finished, null, null); })); buildingThread.Start(); }
public void Abort() { if (!IsBuilding) { return; } buildingThread.Abort();//TODO: better solution? IsBuilding = false; BuildStatusChanged?.Invoke(this, currentBuild | BuildStep.Abort); }
public void Clean() { if (Project == null) { return; } currentBuild = BuildStep.Clean; BuildStatusChanged?.BeginInvoke(this, BuildStep.Clean, null, null); buildingThread = new System.Threading.Thread(new System.Threading.ThreadStart(CleanThread)); buildingThread.Start(); }
private void CleanThread() { IsBuilding = true; foreach (var cachedItem in cache.Files) { var item = Project.GetElement(cachedItem.Value.InputFile) as ContentFile; if (item != null) { ItemProgress?.BeginInvoke(this, new ItemProgressEventArgs(BuildStep.Clean, item), null, null); if (System.IO.File.Exists(GetDestinationFileAbsolute(item))) { System.IO.File.Delete(GetDestinationFileAbsolute(item)); } } } IsBuilding = false; BuildStatusChanged?.Invoke(this, BuildStep.Clean | BuildStep.Finished); }
public void Build(ContentItem item = null) { if (Project == null) { return; } currentBuild = BuildStep.Build; BuildStatusChanged?.BeginInvoke(this, BuildStep.Build, null, null); if (item == null) { buildingThread = new System.Threading.Thread(new System.Threading.ThreadStart(BuildThread)); } else { buildingThread = new System.Threading.Thread(new ThreadStart(() => BuildThread(item))); } buildingThread.Start(); }