Skip to content

Commit e2bcdfb

Browse files
committed
fix wrong dir for quartus downloader
1 parent adc2c92 commit e2bcdfb

3 files changed

Lines changed: 33 additions & 7 deletions

File tree

oneware-extension.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,19 @@
126126
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.7.1/OneWare.QuartusExtension_0.7.1_linux-x64.zip"
127127
}
128128
]
129+
},
130+
{
131+
"version": "0.7.2",
132+
"targets": [
133+
{
134+
"target": "win-x64",
135+
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.7.2/OneWare.QuartusExtension_0.7.2_win-x64.zip"
136+
},
137+
{
138+
"target": "linux-x64",
139+
"url": "https://github.com/one-ware/OneWare.Quartus/releases/download/0.7.2/OneWare.QuartusExtension_0.7.2_linux-x64.zip"
140+
}
141+
]
129142
}
130143
]
131144
}

src/OneWare.Quartus/OneWare.Quartus.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<Version>0.7.1</Version>
4+
<Version>0.7.2</Version>
55
<TargetFramework>net8.0</TargetFramework>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>

src/OneWare.Quartus/QuartusLoader.cs

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using OneWare.Essentials.Behaviors;
55
using OneWare.Essentials.Enums;
66
using OneWare.Essentials.Services;
7+
using OneWare.Quartus.Helper;
78
using OneWare.UniversalFpgaProjectSystem.Models;
89
using OneWare.UniversalFpgaProjectSystem.Parser;
910
using OneWare.UniversalFpgaProjectSystem.Services;
@@ -45,9 +46,21 @@ public async Task DownloadAsync(UniversalFpgaProjectRoot project)
4546
? "1"
4647
: "\"" + cableSetting + "\"";
4748

49+
var qsfPath = QsfHelper.GetQsfPath(project);
50+
var qsf = QsfHelper.ReadQsf(qsfPath);
51+
52+
var outputDirRelative = qsf.GetGlobalAssignment("PROJECT_OUTPUT_DIRECTORY");
53+
54+
var outputDir = project.FullPath;
55+
56+
if (outputDirRelative != null)
57+
{
58+
outputDir = Path.Combine(outputDir, outputDirRelative);
59+
}
60+
4861
if (!longTerm)
4962
{
50-
var sofFile = Path.GetFileName(FirstFileInPath(project.FullPath, ".sof") ?? "");
63+
var sofFile = Path.GetFileName(FirstFileInPath(outputDir,".sof"));
5164

5265
if (string.IsNullOrEmpty(sofFile))
5366
{
@@ -64,7 +77,7 @@ public async Task DownloadAsync(UniversalFpgaProjectRoot project)
6477
pgmArgs.AddRange(["-o", $"{shortTermOperation};{sofFile}"]);
6578

6679
await childProcessService.ExecuteShellAsync("quartus_pgm", pgmArgs,
67-
project.FullPath, "Running Quartus programmer (Short-Term)...", AppState.Loading, true);
80+
outputDir, "Running Quartus programmer (Short-Term)...", AppState.Loading, true);
6881
}
6982
else
7083
{
@@ -74,7 +87,7 @@ await childProcessService.ExecuteShellAsync("quartus_pgm", pgmArgs,
7487

7588
if (longTermFormat.Equals("pof", StringComparison.OrdinalIgnoreCase))
7689
{
77-
var pofFile = Path.GetFileName(FirstFileInPath(project.FullPath, ".pof") ?? "");
90+
var pofFile = Path.GetFileName(FirstFileInPath(outputDir, ".pof") ?? "");
7891

7992
if (string.IsNullOrEmpty(pofFile))
8093
{
@@ -87,7 +100,7 @@ await childProcessService.ExecuteShellAsync("quartus_pgm", pgmArgs,
87100
else
88101
{
89102
//Use CPF to convert SOF in given format
90-
var sofFile = Path.GetFileName(FirstFileInPath(project.FullPath, ".sof") ?? "");
103+
var sofFile = Path.GetFileName(FirstFileInPath(outputDir, ".sof") ?? "");
91104

92105
if (string.IsNullOrEmpty(sofFile))
93106
{
@@ -109,7 +122,7 @@ await childProcessService.ExecuteShellAsync("quartus_pgm", pgmArgs,
109122
cpfArgs.AddRange(["-c", sofFile, convertedFilePath]);
110123

111124
var result = await childProcessService.ExecuteShellAsync("quartus_cpf", cpfArgs,
112-
project.FullPath, $"Converting .sof to .{longTermFormat.ToLower()}...");
125+
outputDir, $"Converting .sof to .{longTermFormat.ToLower()}...");
113126

114127
if (!result.success) return;
115128

@@ -125,7 +138,7 @@ await childProcessService.ExecuteShellAsync("quartus_pgm", pgmArgs,
125138
pgmArgs.AddRange(["-o", $"{longTermOperation};{programFile}"]);
126139

127140
await childProcessService.ExecuteShellAsync("quartus_pgm", pgmArgs,
128-
project.FullPath, "Running Quartus programmer (Long-Term)...", AppState.Loading, true);
141+
outputDir, "Running Quartus programmer (Long-Term)...", AppState.Loading, true);
129142
}
130143
}
131144
}

0 commit comments

Comments
 (0)