feat: zig test/run compiler args

This commit is contained in:
FalsePattern 2024-05-15 18:07:19 +02:00
parent 63a1b0c199
commit 695fe43c28
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
3 changed files with 14 additions and 3 deletions

View file

@ -17,6 +17,11 @@ Changelog structure reference:
## [Unreleased] ## [Unreleased]
### Added
- Project
- Extra compiler arguments field for zig test/run tasks
### Fixed ### Fixed
- Debugging - Debugging

View file

@ -37,7 +37,8 @@ public class ZigExecConfigRun extends ZigExecConfigBase<ZigExecConfigRun> {
private ZigConfigEditor.FilePathConfigurable filePath = new ZigConfigEditor.FilePathConfigurable("filePath", "File Path"); private ZigConfigEditor.FilePathConfigurable filePath = new ZigConfigEditor.FilePathConfigurable("filePath", "File Path");
private ZigConfigEditor.CheckboxConfigurable colored = ZigConfigEditor.coloredConfigurable("colored"); private ZigConfigEditor.CheckboxConfigurable colored = ZigConfigEditor.coloredConfigurable("colored");
private ZigConfigEditor.OptimizationConfigurable optimization = new ZigConfigEditor.OptimizationConfigurable("optimization"); private ZigConfigEditor.OptimizationConfigurable optimization = new ZigConfigEditor.OptimizationConfigurable("optimization");
private ZigConfigEditor.ArgsConfigurable exeArgs = new ZigConfigEditor.ArgsConfigurable("exeArgs", "Arguments for the compile exe"); private ZigConfigEditor.ArgsConfigurable compilerArgs = new ZigConfigEditor.ArgsConfigurable("compilerArgs", "Extra compiler command line arguments");
private ZigConfigEditor.ArgsConfigurable exeArgs = new ZigConfigEditor.ArgsConfigurable("exeArgs", "Output program command line arguments");
public ZigExecConfigRun(@NotNull Project project, @NotNull ConfigurationFactory factory) { public ZigExecConfigRun(@NotNull Project project, @NotNull ConfigurationFactory factory) {
super(project, factory, "Zig Run"); super(project, factory, "Zig Run");
} }
@ -51,6 +52,7 @@ public class ZigExecConfigRun extends ZigExecConfigBase<ZigExecConfigRun> {
if (!debug || optimization.forced) { if (!debug || optimization.forced) {
result.addAll(List.of("-O", optimization.level.name())); result.addAll(List.of("-O", optimization.level.name()));
} }
result.addAll(List.of(compilerArgs.args));
if (!debug) { if (!debug) {
result.add("--"); result.add("--");
result.addAll(List.of(exeArgs.args)); result.addAll(List.of(exeArgs.args));
@ -68,6 +70,7 @@ public class ZigExecConfigRun extends ZigExecConfigBase<ZigExecConfigRun> {
val clone = super.clone(); val clone = super.clone();
clone.filePath = filePath.clone(); clone.filePath = filePath.clone();
clone.colored = colored.clone(); clone.colored = colored.clone();
clone.compilerArgs = compilerArgs.clone();
clone.optimization = optimization.clone(); clone.optimization = optimization.clone();
clone.exeArgs = exeArgs.clone(); clone.exeArgs = exeArgs.clone();
return clone; return clone;
@ -75,7 +78,7 @@ public class ZigExecConfigRun extends ZigExecConfigBase<ZigExecConfigRun> {
@Override @Override
public @NotNull List<ZigConfigEditor.ZigConfigurable<?>> getConfigurables() { public @NotNull List<ZigConfigEditor.ZigConfigurable<?>> getConfigurables() {
return CollectionUtil.concat(super.getConfigurables(), filePath, optimization, colored, exeArgs); return CollectionUtil.concat(super.getConfigurables(), filePath, optimization, colored, compilerArgs, exeArgs);
} }
@Override @Override

View file

@ -38,6 +38,7 @@ public class ZigExecConfigTest extends ZigExecConfigBase<ZigExecConfigTest> {
private ZigConfigEditor.FilePathConfigurable filePath = new ZigConfigEditor.FilePathConfigurable("filePath", "File path"); private ZigConfigEditor.FilePathConfigurable filePath = new ZigConfigEditor.FilePathConfigurable("filePath", "File path");
private ZigConfigEditor.CheckboxConfigurable colored = ZigConfigEditor.coloredConfigurable("colored"); private ZigConfigEditor.CheckboxConfigurable colored = ZigConfigEditor.coloredConfigurable("colored");
private ZigConfigEditor.OptimizationConfigurable optimization = new ZigConfigEditor.OptimizationConfigurable("optimization"); private ZigConfigEditor.OptimizationConfigurable optimization = new ZigConfigEditor.OptimizationConfigurable("optimization");
private ZigConfigEditor.ArgsConfigurable compilerArgs = new ZigConfigEditor.ArgsConfigurable("compilerArgs", "Extra compiler command line arguments");
public ZigExecConfigTest(@NotNull Project project, @NotNull ConfigurationFactory factory) { public ZigExecConfigTest(@NotNull Project project, @NotNull ConfigurationFactory factory) {
super(project, factory, "Zig Test"); super(project, factory, "Zig Test");
} }
@ -51,6 +52,7 @@ public class ZigExecConfigTest extends ZigExecConfigBase<ZigExecConfigTest> {
if (!debug || optimization.forced) { if (!debug || optimization.forced) {
result.addAll(List.of("-O", optimization.level.name())); result.addAll(List.of("-O", optimization.level.name()));
} }
result.addAll(List.of(compilerArgs.args));
if (debug) { if (debug) {
result.add("--test-no-exec"); result.add("--test-no-exec");
} }
@ -73,11 +75,12 @@ public class ZigExecConfigTest extends ZigExecConfigBase<ZigExecConfigTest> {
clone.filePath = filePath.clone(); clone.filePath = filePath.clone();
clone.colored = colored.clone(); clone.colored = colored.clone();
clone.optimization = optimization.clone(); clone.optimization = optimization.clone();
clone.compilerArgs = compilerArgs.clone();
return clone; return clone;
} }
@Override @Override
public @NotNull List<ZigConfigEditor.ZigConfigurable<?>> getConfigurables() { public @NotNull List<ZigConfigEditor.ZigConfigurable<?>> getConfigurables() {
return CollectionUtil.concat(super.getConfigurables(), filePath, optimization, colored); return CollectionUtil.concat(super.getConfigurables(), filePath, optimization, colored, compilerArgs);
} }
} }