* Use cargo metadata to get exe paths
Include support for "test" subcommand
* Fix accidentally using wrong smdh file
* Update help text for `test`
`--release` is no longer special and just works like any other cargo
arg, so might as well take it out of the help text.
* Use cargo's exit code if possible
* Address PR comments
* Use PathBuf and more consistent Path methods
`.display()` for display, `.to_string_lossy()` for passing args. This
isn't perfect, but we'll just assume no UTF-8 pathnames for now.
The parentheses weren't understood by 3dsxtool. Normally they're just a
shell thing anyway, and aren't needed when we're directly constructing
a process's argument array.
This makes it easier to switch between check/clippy and build.
Otherwise, unless you use the same exact RUSTFLAGS and parameters,
Cargo will rebuild everything (throwing away the build cache).
* Now supports building examples with `--example <name>`.
* Now prints out each stage as it executes.
* Now uses the target dir found by `cargo metadata`, since it may not be
in the current directory (ex. workspaces).
The default-linker-libraries flag requires a change in the rustc target
to set `no_default_libraries` to false.
The muldefs flag isn't necessary anymore. I think the removal of static
libs (ex. linker fix and pthread_3ds) might have fixed this issue.
The __3DS__ flag doesn't seem to have been necessary at all.
Similarly, `-Z unstable-options` isn't needed for cargo.