refac(D1): pull most of the code back into a core
crate
#283
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By reintroducing a
mnemos-d1-core
crate, we can put most of the platform implementation in a crate without aforced-target
, allowing us to run unit tests for the platform impl on the build host. The actual dependencies onriscv
andriscv-rt
, which won't build for the host's target, are nowcfg
-gated. We must still have the crate containing the top-level binaries have aforced-target
, or else we hit weird cargo bugs I don't understand, but it's now a thin wrapper around thecore
crate which has aforced-target
and defines the board binaries.This also has the side benefit of letting us put the
d1-core
crate in the workspace'sdefault-members
, so it gets seen bycargo test
/cargo fmt
/etc without having to pass it explicitly. And, we can have tests now!