From 5a5a3085d630d2edfce3898755235bf3e94025dd Mon Sep 17 00:00:00 2001 From: Sebastian Wittlich Date: Wed, 8 Jan 2025 13:28:24 +0100 Subject: [PATCH 1/2] Adding a project-specific VHDL standard --- ...ersalFpgaProjectSettingsEditorViewModel.cs | 20 ++++++++++++++++++- ...iversalFpgaProjectSettingsEditorView.axaml | 13 ++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs b/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs index 425718d3..0e05fa0e 100644 --- a/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs +++ b/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs @@ -31,6 +31,7 @@ public class UniversalFpgaProjectSettingsEditorViewModel : FlexibleWindowViewMod private ComboBoxSetting _toolchain; private ComboBoxSetting _loader; + private ComboBoxSetting? _vhdlStandard; private ListBoxSetting _includesSettings; private ListBoxSetting _excludesSettings; @@ -41,6 +42,13 @@ public UniversalFpgaProjectSettingsEditorViewModel(UniversalFpgaProjectRoot root _projectExplorerService = projectExplorerService; _fpgaService = fpgaService; Title = $"{_root.Name} Settings"; + + if (root.TopEntity != null && (root.TopEntity.Name.Contains("vhd") || root.TopEntity.Name.Contains("vhdl"))) + { + var standard = _root.Properties["VHDL_Standard"]; + var value = standard == null ? "" : standard.ToString(); + _vhdlStandard = new ComboBoxSetting("VHDL Standard", value, ["87", "93", "93c", "00", "02", "08", "19"]); + } var includes = _root.Properties["Include"]!.AsArray().Select(node => node!.ToString()).ToArray(); var exclude = _root.Properties["Exclude"]!.AsArray().Select(node => node!.ToString()).ToArray(); @@ -52,14 +60,21 @@ public UniversalFpgaProjectSettingsEditorViewModel(UniversalFpgaProjectRoot root var loader = ContainerLocator.Container.Resolve().Loaders.Select(loader => loader.Name); var currentLoader = _root.Properties["Loader"]!.ToString(); _loader = new ComboBoxSetting("Loader", currentLoader, loader); - + _includesSettings = new ListBoxSetting("Files to Include", includes); _excludesSettings = new ListBoxSetting("Files to Exclude", exclude); + SettingsCollection.SettingModels.Add(_toolchain); SettingsCollection.SettingModels.Add(_loader); + + if (_vhdlStandard != null) { + SettingsCollection.SettingModels.Add(_vhdlStandard); + } + SettingsCollection.SettingModels.Add(_includesSettings); SettingsCollection.SettingModels.Add(_excludesSettings); + } private async Task SaveAsync() @@ -75,6 +90,9 @@ private async Task SaveAsync() _root.SetProjectPropertyArray("Include", _includesSettings.Items.Select(item => item.ToString()).ToArray()); _root.SetProjectPropertyArray("Exclude", _excludesSettings.Items.Select(item => item.ToString()).ToArray()); + if (_vhdlStandard.Value.ToString() != null) + _root.SetProjectProperty("VHDL Standard", _vhdlStandard.Value.ToString()!); + await _projectExplorerService.SaveProjectAsync(_root); await _projectExplorerService.ReloadAsync(_root); } diff --git a/src/OneWare.UniversalFpgaProjectSystem/Views/UniversalFpgaProjectSettingsEditorView.axaml b/src/OneWare.UniversalFpgaProjectSystem/Views/UniversalFpgaProjectSettingsEditorView.axaml index 3d193c3b..4163456d 100644 --- a/src/OneWare.UniversalFpgaProjectSystem/Views/UniversalFpgaProjectSettingsEditorView.axaml +++ b/src/OneWare.UniversalFpgaProjectSystem/Views/UniversalFpgaProjectSettingsEditorView.axaml @@ -13,12 +13,17 @@ x:Class="OneWare.UniversalFpgaProjectSystem.Views.UniversalFpgaProjectSettingsEditorView" x:DataType="viewModels:UniversalFpgaProjectSettingsEditorViewModel" Name="UniversalFpgaProjectCompileViewView"> - - + + + + + + + - - + \ No newline at end of file From 3b20f1bb9caca70cb4bbd9963deef6f44dc29ccf Mon Sep 17 00:00:00 2001 From: Sebastian Wittlich Date: Wed, 8 Jan 2025 15:07:36 +0100 Subject: [PATCH 2/2] fix typo --- .../ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs b/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs index 0e05fa0e..563f65cc 100644 --- a/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs +++ b/src/OneWare.UniversalFpgaProjectSystem/ViewModels/UniversalFpgaProjectSettingsEditorViewModel.cs @@ -91,7 +91,7 @@ private async Task SaveAsync() _root.SetProjectPropertyArray("Exclude", _excludesSettings.Items.Select(item => item.ToString()).ToArray()); if (_vhdlStandard.Value.ToString() != null) - _root.SetProjectProperty("VHDL Standard", _vhdlStandard.Value.ToString()!); + _root.SetProjectProperty("VHDL_Standard", _vhdlStandard.Value.ToString()!); await _projectExplorerService.SaveProjectAsync(_root); await _projectExplorerService.ReloadAsync(_root);