rust2rpm/data/macros.cargo
Martin Sehnoutka 2c556e1473 macros: explicitly set rustdoc
On systems where rustup is used, simple rpmbuild will use rustc from system,
but rustdoc will be taken from PATH which might be different from system.
Given this, doc-tests or anything related to rustdoc will fail with mis-mathching
rustc version.

Merges: https://pagure.io/fedora-rust/rust2rpm/pull-request/38
2017-06-23 13:41:42 +02:00

58 lines
2.1 KiB
Text

%__cargo %{_bindir}/cargo
%__cargo_common_opts --release %{?_smp_mflags}
%__cargo_inspector %{_bindir}/cargo-inspector
%cargo_registry %{_datadir}/cargo/registry
%__cargo_is_lib() %__cargo_inspector --target-kinds Cargo.toml | grep -q -F "$(printf 'lib\\\nproc-macro')"
%__cargo_is_bin() %__cargo_inspector --target-kinds Cargo.toml | grep -q -F bin
%cargo_prep (\
set -eu \
%{__mkdir} -p .cargo \
cat > .cargo/config << EOF \
[build]\
rustc = "%{__rustc}"\
rustdoc = "%{__rustdoc}"\
rustflags = %{__global_rustflags_toml}\
\
[term]\
verbose = true\
\
[source]\
\
[source.local-registry]\
directory = "%{cargo_registry}"\
\
[source.crates-io]\
registry = "https://crates.io"\
replace-with = "local-registry"\
EOF\
%if ! %{with check} \
# https://github.com/rust-lang/cargo/issues/3732 \
%{__awk} -i inplace -v INPLACE_SUFFIX=.orig '/^\\\[dev-dependencies/{f=1;next} /^\\\[/{f=0}; !f' Cargo.toml \
%endif \
)
%cargo_build %__cargo build %{__cargo_common_opts}
%cargo_test %__cargo test %{__cargo_common_opts}
%cargo_install (\
set -eu \
if %__cargo_is_lib; then \
CRATE_NAME=$(%__cargo_inspector --name Cargo.toml) \
CRATE_VERSION=$(%__cargo_inspector --version Cargo.toml) \
REG_DIR=%{buildroot}%{cargo_registry}/$CRATE_NAME-$CRATE_VERSION \
%{__mkdir} -p $REG_DIR \
%__cargo package -l | xargs cp --parents -p -t $REG_DIR \
%if ! %{with check} \
%{__install} -p Cargo.toml.orig $REG_DIR/Cargo.toml \
%endif \
echo '{"files":{},"package":""}' > $REG_DIR/.cargo-checksum.json \
fi \
if %__cargo_is_bin; then \
%__cargo install %{?_smp_mflags} --path . --root %{buildroot}%{_prefix} \
%{__rm} %{buildroot}%{_prefix}/.crates.toml \
fi \
)