Change our build process to run Cargo from inside the build tree

Instead of using the cwd to specify the location of Cargo.toml, we
use the --manifest-path option to specify its location explicitly.

This works around the bug that isis diagnosed on our jenkins builds.
This commit is contained in:
Nick Mathewson 2017-12-05 08:30:26 -05:00
parent a798ba6e9b
commit 1969d57363
3 changed files with 17 additions and 6 deletions

View File

@ -0,0 +1,3 @@
o Minor bugfixes (compilation, rust):
- Build correctly when building from outside Tor's source tree with the
TOR_RUST_DEPENDENCIES option set. Fixes bug 22768; bugfix on 0.3.1.7.

View File

@ -5,16 +5,20 @@ EXTRA_DIST +=\
EXTRA_CARGO_OPTIONS=
src/rust/target/release/@TOR_RUST_STATIC_NAME@: FORCE
( cd "$(abs_top_srcdir)/src/rust/tor_rust" ; \
( cd "$(abs_top_builddir)/src/rust" ; \
CARGO_TARGET_DIR="$(abs_top_builddir)/src/rust/target" \
CARGO_HOME="$(abs_top_builddir)/src/rust" \
$(CARGO) build --release $(EXTRA_CARGO_OPTIONS) $(CARGO_ONLINE) )
$(CARGO) build --release $(EXTRA_CARGO_OPTIONS) \
$(CARGO_ONLINE) \
--manifest-path "$(abs_top_srcdir)/src/rust/tor_rust/Cargo.toml" )
distclean-rust:
( cd "$(abs_top_srcdir)/src/rust/tor_rust" ; \
( cd "$(abs_top_builddir)/src/rust" ; \
CARGO_TARGET_DIR="$(abs_top_builddir)/src/rust/target" \
CARGO_HOME="$(abs_top_builddir)/src/rust" \
$(CARGO) clean $(EXTRA_CARGO_OPTIONS) $(CARGO_ONLINE) )
$(CARGO) clean $(EXTRA_CARGO_OPTIONS) \
$(CARGO_ONLINE) \
--manifest-path "$(abs_top_srcdir)/src/rust/tor_rust/Cargo.toml" )
rm -rf "$(abs_top_builddir)/src/rust/registry"
if USE_RUST

View File

@ -8,8 +8,12 @@ exitcode=0
set -e
for crate in $crates; do
cd "${abs_top_srcdir:-.}/src/rust/${crate}"
CARGO_TARGET_DIR="${abs_top_builddir:-../../..}/src/rust/target" CARGO_HOME="${abs_top_builddir:-../../..}/src/rust" "${CARGO:-cargo}" test ${CARGO_ONLINE-"--frozen"} || exitcode=1
cd "${abs_top_builddir:-../../..}/src/rust"
CARGO_TARGET_DIR="${abs_top_builddir:-../../..}/src/rust/target" \
CARGO_HOME="${abs_top_builddir:-../../..}/src/rust" \
"${CARGO:-cargo}" test ${CARGO_ONLINE-"--frozen"} \
--manifest-path "${abs_top_srcdir:-.}/src/rust/${crate}/Cargo.toml" \
|| exitcode=1
cd -
done