Following the implementation in `std.Build.Step.Compile, add the Kind
type to differentiate between a normal executable and a test executable
running zig tests. Replace `Exercise.run_test` field with `kind`.
Compile the exercise in both the exe and test cases, reducing code
duplication.
Add the `check_output` and `check_test` methods in ZiglingStep, in order
to differentiate the code checking a normal executable and a test
executable.
Update the tests to correctly check both the exe and test cases. Remove
the temporary code added in commit 832772c.
Add the Mode enum, so that ZiglingStep can detect if it was called in
normal mode or in named mode.
Update the help method to print the correct message based on the current
build mode.
Remove the following steps, since they are rarely (if never) used and
only increase the complexity of the `build.zig` file:
- install step (zig build -Dn=n install)
- test step (zig build -Dn=n test)
- start step (zig build -Dn=n start)
The only remaining step is the default zigling step (zig build -Dn=n),
where the user can choose the exercise to solve.
Update the tests. Additionally, update CheckNamedStep and CheckStep so
that they can share the same functions.
Closes#299
Removing the install step will simplify the current code.
Copying the exercise executable to the zig-out directory can be done in
`ZiglingStep.
Closes#298
The special eowyn mode was added in order to improve the performance of
the Eowyn Github workflow.
Remove it, since it adds unnecessary complexity to the `build.zig` file.
Closes#297
Commit dbd42bb (Cleaning up zig build output) broke the unit test.
Always use exit code 2, instead of 0. This is the exit code used by the
build runner to notify the compiler to not report any further
diagnostics.
Move the Ziglings logo from the `build` function scope to the global
scope, and make it public so that tests.zig can use it to find the
number of lines to skip, instead of using an hard coded value.
Fixes#295
Some functions and custom build steps incorrectly used a normal comment.
Use a doc-comment instead.
Additionally, use a present tense verb to describe the action of a
function or custom build step.
Update the code in `zig build install` and `zig build -Dn=n install`, so
that exercises that must be skipped are not installed, since it will
cause an error. Ensure that a skip message is printed.
The command fails because the path to the exercises directory was
incorrectly set to "exercises" instead of `work_path`.
The bug was introduced in commit b56bb7b
(build: enable full parallelism when -Dhealed is set).
Remove the comment about not using multi-object loop, since it is
confusing.
* Only show actual Zig compiler errors, not build internals to
confused and dismay.
* Remove advanced usage instructions not needed in normal
operation.