[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Building hexyl (a rust app) without cargo, with antioxidant-build-sy
Re: Building hexyl (a rust app) without cargo, with antioxidant-build-system
Tue, 05 Apr 2022 18:10:19 +0200
Maxime Devos schreef op za 02-04-2022 om 17:18 [+0200]:
> * makes a few assumptions on the source layout (can be fixed
> by using more info from Cargo.toml)
This has now been partially resolved. It now looks in Cargo.toml to
determine where Rusts's equivalent of 'configure' (build.rs) is
located, and the Cargo.toml can now override the default src/lib.rs.
Some other improvements that weren't announced previously:
* The code now automatically detects cycles and reports which
packages are involved in the cycle.
* --edition (cf. -std=c11/c99/...) is set appropriately, depending on
Cargo.toml, fixing some build failures.
* All default 'features' (in Cargo.toml) are now enabled by default.
* Package definitions can request non-default features to be built
A difference from cargo-build-system: features are set in the
package of the rust crate, not the package using the rust crate.
* build.rs is now run, which reduces the number of features that need
to be set manually.
* proc-macro crates are now named .so instead of .rlib, apparently
naming them .rlib even though they aren't .rlibs confuses rustc
* #[deny(warnings)] (rust's equivalent of -Werrors) is now ignored
(FWIW this is done by cargo as well).
* Conversion from cargo-build-system to antioxidate-build-system is
now automated by a recursive 'vitaminate/auto' procedure and some
ad-hoc cycle breaking.
Some things that could perhaps be moved to (upstream) Guix:
* Sometimes test and build.rs dependencies are listed in
#:cargo-inputs and #:cargo-development-inputs (e.g.
rust-quickcheck, rust-cc). I deleted the test dependencies
(because they contribute to cycles and for now running tests
isn't supported anyways).
Maybe they can be moved to #:cargo-development-inputs upstream
(untested)? Extending 'check-inputs-should-be-native' would also
be nice too ...
* There's a cycle between rust-backtrace-sys and rust-cc can be
eliminated by deleting build.rs and tweaking Cargo.toml, at cost
of losing some support for Android (which is not supported by Guix
except in the sense that Linux is supported).
Description: This is a digitally signed message part