private ProtoCore.VHDL.AST.ModuleNode CreateModule(string componentName, bool isBuiltIn = false) { ModuleName = componentName; if (!ModuleMap.ContainsKey(ModuleName)) { ModuleMap[ModuleName] = new AST.ModuleNode(ModuleName, isBuiltIn); return(ModuleMap[ModuleName]); } return(null); }
/// <summary> /// A default module contains only the following: /// 1. Default library list (IEEE) /// 2. Default use module list (IEEE numeric) /// 3. Reset signal /// </summary> /// <param name="name"></param> /// <returns></returns> public ProtoCore.VHDL.AST.ModuleNode CreateAndAppendDefaultModule(string name, bool isBuiltIn = false) { ModuleName = name; Validity.Assert(!ModuleMap.ContainsKey(ModuleName)); ProtoCore.VHDL.AST.ModuleNode module = new AST.ModuleNode(ModuleName, isBuiltIn); ModuleMap[ModuleName] = module; // Library list List <string> libaryNameList = new List <string>(); libaryNameList.Add("IEEE"); module.LibraryList = ProtoCore.VHDL.Utils.GenerateLibraryNodeList(libaryNameList); // Module list List <string> moduleNameList = new List <string>(); moduleNameList.Add("IEEE.STD_LOGIC_1164.ALL"); moduleNameList.Add("IEEE.NUMERIC_STD.ALL"); module.UseNodeList = ProtoCore.VHDL.Utils.GenerateUseNodeList(moduleNameList); return(module); }
private static void ValidateCsProjFiles(string rmPath) { var projectFolders = GetProjectFolderPaths(rmPath, true); var desktopFilePaths = GetDesktopFilePaths(projectFolders); var desktopDefinitions = GetDesktopDefinitions(desktopFilePaths); foreach (var desktopDefinition in desktopDefinitions) { var netCorePath = ConvertDesktopToNetCorePath(desktopDefinition.FilePath); var desktopFileName = Path.GetFileNameWithoutExtension(desktopDefinition.FilePath); var moduleName = desktopFileName.Replace("Commands.", String.Empty); var netCoreFileName = Path.GetFileNameWithoutExtension(netCorePath); if (!File.Exists(netCorePath) || ModuleSkipList.Contains(moduleName)) { var priorColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"Skipping {netCoreFileName}"); Console.ForegroundColor = priorColor; continue; } Console.WriteLine($"Validating {netCoreFileName}"); var oldReferences = desktopDefinition.ItemGroups.Where(ig => ig.References?.Any() ?? false).SelectMany(ig => ig.References).ToArray(); var managementPackageNames = ModuleMap.ContainsKey(moduleName) ? ModuleMap[moduleName] : new List <string> { $"Management.{moduleName}" }; foreach (var managementPackageName in managementPackageNames) { var oldManagementReference = oldReferences.FirstOrDefault(r => (r?.Include?.Contains(managementPackageName) ?? false) || (r?.HintPath?.Contains(managementPackageName) ?? false)); if (oldManagementReference == null) { var priorColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{desktopFileName}: Could not locate management library containing {managementPackageName}"); Console.ForegroundColor = priorColor; Environment.ExitCode = 1; continue; } var serializer = new XmlSerializer(typeof(NewProjectDefinition)); NewProjectDefinition netCoreDefinition; using (var fileStream = new FileStream(netCorePath, FileMode.Open)) { netCoreDefinition = (NewProjectDefinition)serializer.Deserialize(fileStream); } var newPackageReferences = netCoreDefinition.ItemGroups.Where(ig => ig.PackageReferences?.Any() ?? false).SelectMany(ig => ig.PackageReferences); var newManagementReference = newPackageReferences.FirstOrDefault(r => r?.Include?.Contains(managementPackageName) ?? false); if (newManagementReference == null) { var priorColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{netCoreFileName}: Could not locate management library containing {managementPackageName}"); Console.ForegroundColor = priorColor; Environment.ExitCode = 1; continue; } var oldVersionString = GetVersionString(oldManagementReference); var oldVersion = StringToVersion(oldVersionString); var newVersionString = newManagementReference.Version; var newVersion = StringToVersion(newVersionString); // ReSharper disable once InvertIf if (oldVersion > newVersion) { var priorColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Version mismatch: {oldVersionString} > {newVersionString} : {managementPackageName}"); Console.ForegroundColor = priorColor; Environment.ExitCode = 1; } } } }