Warn user that no 3dsx will be built in this case, and use "human"
formatting so that we get colored rustc output (since we don't need to
parse the JSON output in this case anyway).
We can still parse the JSON output, even if
Also:
- remove some unused deps.
- make sure we use eprintln so it doesn't interfere with any JSON output
the user might want
* 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.