All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
-
[breaking-change] By default, Xargo now only compiles the
core
crate. To build more crates, use aXargo.toml
file -
[breaking-change] Xargo will now build a sysroot for any target that's not the host.
-
The verbose flag,
-v
, makes Xargo print all the shell commands it invokes to stderr.
- Support for the 'dev' channel. When using the dev channel, you must specify the path to the Rust source directory via the XARGO_RUST_SRC environment variable.
- The rust-src search logic to account for recent changes in the Rust distribution.
-
Xargo will now try to build every crate "below"
std
, i.e. all its dependencies, in topological order. This makes Xargo robust against changes in thestd
facade as it no longer depends on hard coded crate names likerustc_unicode
. -
Xargo won't rebuild the sysroot if the only thing that changed in Cargo.toml is profile.*.lto. Enabling/disabling LTO doesn't change how dependencies are compiled.
-
Xargo won't rebuild the sysroot if the linker flags (
-C link-arg
) have changed. Those don't affect how the dependencies are compiled.
v0.2.1 - 2016-10-22
- No weird
()
output inxargo -V
if Xargo was built viacargo install
- Better formatted error messages. Mention the RUST_BACKTRACE env variable which is used to get backtraces on errors.
v0.2.0 - 2016-10-16
- Statically linked binary releases for Linux (x86 musl targets)
xargo -V
output now includes the commit hash and date
- Xargo now depends on the
rust-src
component being installed. Install it withrustup component add rust-src
. - Xargo no longer depends on libcurl, libssh or libssl and, therefore, it's now much easier to build.
- Xargo now respects the existing rustdocflags (RUSTDOCFLAGS env var, build.rustdocflags, etc) when passing --sysroot to rustdoc.
- File locking logic has been revised/simplied and now lock periods are shorter
v0.1.14 - 2016-10-09
xargo -V
andxargo --version
now report Xargo's version as well as Cargo's.
v0.1.13 - 2016-10-06
- Xargo now builds a sysroot for the new built-in
thumbv*-none-eabi*
targets which don't ship with a binary release of the standard crates.
v0.1.12 - 2016-10-04
- Xargo now supports per-target rustflags:
target.thumbv7em-none-eabihf.rustflags
in .cargo/config.
v0.1.11 - 2016-09-30
xargo clean
and other commands not associated to building stuff no longer trigger a sysroot rebuild.
v0.1.10 - 2016-09-28
xargo doc
, which wasn't working because we didn't pass --sysroot to rustdoc. Note that rustdoc gained support for '--sysroot' as of nightly-2016-06-28, so that version or newer is required to usexargo doc
.
v0.1.9 - 2016-09-27
- "error: Invalid cross-device link (os error 18)" which occurred when
$CARGO_HOME
was mounted in a different device than "$XARGO_HOME
" (~/.xargo). The solution was to stop using hard links to place the host libraries in the Xargo sysroot and instead just copy them. This is a regression in disk usage but this problem was coming up in common Docker usage patterns (-v A:B).
v0.1.8 - 2016-09-04
- All the status messages are now printed to stderr instead of to stdout. Cargo did the same change (from stdout to stderr) a while ago. Let's follow suit.
- When compiling crate
foo
with Xargo, the profile section offoo
's Cargo.toml is also "taken into account" when compiling the sysroot. For example, iffoo
has setpanic = "abort"
for all its profiles, then the sysroot will also be compiled with-C panic=abort
. Previously, this wasn't the case.
v0.1.7 - 2016-09-03
- The sysroot now gets rebuilt when rust-src changes.
v0.1.6 - 2016-08-29
- Xargo can now use the source code installed by rustup. When available, this is the preferred way to fetch the source code and saves network bandwidth by not having to fetch the source tarball.
v0.1.5 - 2016-08-11
- Xargo now works properly when called from a
rustup override
n directory.
v0.1.4 - 2016-08-06
- Support targets that don't support atomics (
"max-atomic-width": 0
). For these targets, Xargo only compiles thecore
andrustc_unicode
crates as the other crates depend on atomics (e.g.alloc::Arc
).
v0.1.3 - 2016-04-24
xargo (..) --verbose
passes--verbose
to thecargo
call that builds the sysroot.- the sysroot now gets rebuilt when RUSTFLAGS or build.rustflags is modified.
- Xargo now respects the build.rustflags value set in .cargo/config.
- A bug where the hash/date file didn't get properly truncated before updating it leading to Xargo to always trigger a sysroot rebuild.
v0.1.2 - 2016-04-24 [YANKED]
- Xargo now uses file locking and can be executed concurrently.
- Xargo now print its current status to the console while building a sysroot.
- Xargo now reports errors to the console instead of panicking.
- Logging via
RUST_LOG
has been removed now that Xargo prints its status to the console.
- Initial release