`rustc-env` only works for the current crate, but plain keys work for
dependent crates via the `DEP_CTRU` keys, which is probably more useful in
general.
- Don't issue a warning for "mismatched version" since the new bindings
make this irrelevant
- Minor build script refactoring and code cleanup
- Output a `release` version (-X) for libctru env vars
- Revert version to 0.5.0, which is higher than we were using before the
major 22.x version but should be ok since we never released to crates.io
Luckily, Cargo doesn't mind circular dev-dependencies and we can patch
to ensure it's using the same version. We can also leave this as a
`git = "..."` dependency if we want, since it's a dev dependency.
Also simplify version checking logic a bit. It's just a warning, so we
can check for exact version just to be safe and skip the major/minor
comparisons for semver.
Also update the README a bit to explain the versioning scheme.
- Add a helper for local testing with https://github.com/nektos/act
- Don't deny clippy warnings, they can change too easily and break CI
- Add minimum rust version just for completeness' sake
This fixes the panic issue (not calling `panic_count::increase`) as well
as the missing debug info. The static lib contained a second copy of the
rust std, which caused these issues.
A side effect of removing this std is that the linker fix and pthread
library modules need to be "reachable" from the main module for Rust to
link them correctly. If the init methods of the modules are not called
somewhere, then a linker error will be emitted saying some symbols are
not found. The linker fix module didn't need this before because the
std included in the pthread static lib required those symbols, so they
were included. Now that the std is linked in later, Rust thinks these
symbols are unused (hence the init method).
Also moved the linker fix to be a dependency on ctru-rs. ctru-sys should
just be about interfacing with libctru.