commit:     9393ba8b683e6a055522d81740f94a11a0abfcb4
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 10 00:15:54 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Mon Nov 11 08:49:15 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9393ba8b

cargo.eclass: check for and quote `CARGO`

A quick sanity check that `CARGO` is set in appropriate cargo_src_*
phase functions will make it easier for users to catch occurrences
where pkg_setup does not call rust_pkg_setup.

Also inherit llvm-r1 if required and let it die instead of us if
the environment is not properly setup.

Closes: https://bugs.gentoo.org/943147
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 eclass/cargo.eclass | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/eclass/cargo.eclass b/eclass/cargo.eclass
index 855692b72ec7..95ff317e1f21 100644
--- a/eclass/cargo.eclass
+++ b/eclass/cargo.eclass
@@ -20,9 +20,7 @@ if [[ -z ${_CARGO_ECLASS} ]]; then
 _CARGO_ECLASS=1
 
 if [[ -n ${RUST_NEEDS_LLVM} ]]; then
-       if [[ -z ${_LLVM_R1_ECLASS} ]]; then
-               die "Please inherit llvm-r1.eclass before cargo.eclass when 
using RUST_NEEDS_LLVM"
-       fi
+               inherit llvm-r1
 fi
 
 if [[ -n ${CARGO_OPTIONAL} ]]; then
@@ -627,7 +625,11 @@ cargo_env() {
 cargo_src_compile() {
        debug-print-function ${FUNCNAME} "$@"
 
-       set -- ${CARGO} build $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
+       if [[ -z "${CARGO}" ]]; then
+               die "CARGO is not set; was rust_pkg_setup run?"
+       fi
+
+       set -- "${CARGO}" build $(usex debug "" --release) ${ECARGO_ARGS[@]} 
"$@"
        einfo "${@}"
        cargo_env "${@}" || die "cargo build failed"
 }
@@ -641,7 +643,11 @@ cargo_src_compile() {
 cargo_src_install() {
        debug-print-function ${FUNCNAME} "$@"
 
-       set -- ${CARGO} install $(has --path ${@} || echo --path ./) \
+       if [[ -z "${CARGO}" ]]; then
+               die "CARGO is not set; was rust_pkg_setup run?"
+       fi
+
+       set -- "${CARGO}" install $(has --path ${@} || echo --path ./) \
                --root "${ED}/usr" \
                ${GIT_CRATES[@]:+--frozen} \
                $(usex debug --debug "") \
@@ -659,7 +665,11 @@ cargo_src_install() {
 cargo_src_test() {
        debug-print-function ${FUNCNAME} "$@"
 
-       set -- ${CARGO} test $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
+       if [[ -z "${CARGO}" ]]; then
+               die "CARGO is not set; was rust_pkg_setup run?"
+       fi
+
+       set -- "${CARGO}" test $(usex debug "" --release) ${ECARGO_ARGS[@]} "$@"
        einfo "${@}"
        cargo_env "${@}" || die "cargo test failed"
 }

Reply via email to