diff --git a/PKGBUILD b/PKGBUILD
index 851cc545aa3a260f41cad157384308a4b917f56e..9c3856c6eb3c264c868dd7853a713a5ea3c2ed42 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -44,6 +44,9 @@ export CARGO_PROFILE_RELEASE_DEBUG=2
 
 prepare() {
   cd $pkgname
+
+  export CARGO_HOME="$srcdir/build/cargo-home"
+  cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
 }
 
 build() {
@@ -52,7 +55,7 @@ build() {
 }
 
 check() {
-  meson test -C build --print-errorlogs
+  meson test -C build --print-errorlogs --no-rebuild
 }
 
 package() {