Ejemplo n.º 1
0
        protected override void Execute(CodeActivityContext context)
        {
            console = context.GetExtension <ActivityConsole>();
            if (console == null)
            {
                console = new ActivityConsole();
            }
            bool   showDetails = ShowDetails.Get(context);
            string path        = Path.Get(context);
            string filter      = Filter.Get(context);

            List <string> fileNames = Directory.EnumerateFiles(path, filter).ToList();

            foreach (string fileName in fileNames)
            {
                File.Delete(fileName);
                if (showDetails)
                {
                    console.WriteLine(string.Format("Deleted file '{0}'.", fileName));
                }
            }

            if (IncludeFolders.Get(context))
            {
                List <string> directoryNames = Directory.EnumerateDirectories(path, filter).ToList();
                foreach (string directoryName in directoryNames)
                {
                    Directory.Delete(directoryName, true);
                    if (showDetails)
                    {
                        console.WriteLine(string.Format("Deleted folder '{0}' and everything in it.", directoryName));
                    }
                }
            }
        }
        public void Load(ISettingsStore settings)
        {
            var model = FileSettings.Load(settings);

            IncludeFolders.Load(model);
            IncludeExtensions.Load(model);
            ExcludeFolders.Load(model);
            ExcludePatterns.Load(model);
        }
Ejemplo n.º 3
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = IncludeFolders.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)Mode;
         hashCode = (hashCode * 397) ^ (Filter != null ? Filter.GetHashCode() : 0);
         return(hashCode);
     }
 }
        public void Save(ISettingsStore settings)
        {
            var model = new FileSettings();

            IncludeFolders.Populate(ref model);
            IncludeExtensions.Populate(ref model);
            ExcludeFolders.Populate(ref model);
            ExcludePatterns.Populate(ref model);

            model.Save(settings);

            if (!_hasChanges)
            {
                _hasChanges = IncludeFolders.IsDirty || IncludeExtensions.IsDirty ||
                              ExcludeFolders.IsDirty || ExcludePatterns.IsDirty;
            }
        }
Ejemplo n.º 5
0
        public void ReadXml(XmlReader reader)
        {
            reader.Read();

            XmlSerializer serializer = new XmlSerializer(typeof(string), new XmlRootAttribute(typeof(string).Name.ToLower()));

            _loc = serializer.Deserialize(reader) as string;

            serializer = new XmlSerializer(typeof(List <SourceFile>), new XmlRootAttribute("SourceFiles"));
            SourceFiles.AddRange(serializer.Deserialize(reader) as List <SourceFile>);

            serializer = new XmlSerializer(typeof(List <string>), new XmlRootAttribute("IncludeFolders"));
            IncludeFolders.AddRange(serializer.Deserialize(reader) as List <string>);

            serializer = new XmlSerializer(typeof(List <string>), new XmlRootAttribute("SystemDependencies"));
            SystemDeps.AddRange(serializer.Deserialize(reader) as List <string>);

            serializer = new XmlSerializer(typeof(ProjectProperties), new XmlRootAttribute("ProjectProperties"));
            Properties = serializer.Deserialize(reader) as ProjectProperties;
        }
Ejemplo n.º 6
0
        public void Build()
        {
            string projectLocation = Path.GetDirectoryName(_loc);
            string objFolder       = Path.Combine(projectLocation, "obj");
            string binFolder       = Path.Combine(projectLocation, "bin");
            string includes        = BuildIncludeString().Trim('\n');
            string propStr         = BuildPropertiesString().Trim('\n');

            if (!Directory.Exists(objFolder))
            {
                Directory.CreateDirectory(objFolder);
            }

            if (File.Exists($"{projectLocation}/scripts/prebuildScript.sh"))
            {
                Console.Write(ExternalPrograms.RunScript($"{projectLocation}/scripts/prebuildScript.sh"));
            }

            IEnumerable <SourceFile> viewCode = null;

            if (SourceFiles.Any(f => f.FileType == SourceCodeType.View))
            {
                IEnumerable <string> viewFiles = SourceFiles
                                                 .Where(f => f.FileType == SourceCodeType.View)
                                                 .Select(f => f.Path);

                GMLInterface.ProcessFiles(viewFiles, IncludeFolders.First());

                viewCode = viewFiles.Select(f => new SourceFile($"{Path.GetDirectoryName(f)}/{Path.GetFileNameWithoutExtension(f)}.g.c")).ToArray();
                SourceFiles.AddRange(viewCode);
            }

            System.Console.WriteLine("Builing...");

            foreach (SourceFile file in SourceFiles.Where(f => f.FileType == SourceCodeType.Code))
            {
                string fileName = System.IO.Path.GetFileName(file.Path).Split('.', StringSplitOptions.RemoveEmptyEntries)[0];

                ExternalPrograms.RunCompiler($"-c {file.Path} -o {objFolder}/{fileName}.o {includes} {propStr}");
            }

            if (viewCode != null)
            {
                foreach (SourceFile viewFile in viewCode)
                {
                    SourceFiles.Remove(viewFile);
                }
                viewCode = null;
            }

            var objFiles = Directory.GetFiles(objFolder)
                           .Where(f => string.Compare(Path.GetExtension(f), ".o") == 0);

            if (objFiles.Any())
            {
                System.Console.WriteLine("Linking...");
                string        link = BuildLinkString().Trim('\n');
                StringBuilder sb   = new StringBuilder(link);

                foreach (string o in objFiles)
                {
                    sb.Append($"{o} ");
                }

                string outName = Path.GetFileNameWithoutExtension(_loc);

                if (!Directory.Exists(binFolder))
                {
                    Directory.CreateDirectory(binFolder);
                }

                sb.Append($"-o {binFolder}/{outName}.lef");

                ExternalPrograms.RunCompiler(sb.ToString());

                if (File.Exists($"{projectLocation}/scripts/postbuildScript.sh"))
                {
                    Console.Write(ExternalPrograms.RunScript($"{projectLocation}/scripts/postbuildScript.sh"));
                }
            }
        }