Example #1
0
        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();
        }
Example #2
0
        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);
        }
Example #3
0
        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();
        }
Example #4
0
 public void Abort()
 {
     if (!IsBuilding)
     {
         return;
     }
     buildingThread.Abort();//TODO: better solution?
     IsBuilding = false;
     BuildStatusChanged?.Invoke(this, currentBuild | BuildStep.Abort);
 }
Example #5
0
        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();
        }
Example #6
0
 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);
 }
Example #7
0
        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();
        }