#17 %cargo_install is now smart to handle libs and bins
Merged 7 years ago by ignatenkobrain. Opened 7 years ago by ignatenkobrain.

file modified
+20 -10
@@ -1,9 +1,13 @@ 

  %__cargo %{_bindir}/cargo

  %__cargo_common_opts --release %{?_smp_mflags}

+ %__cargo_inspector %{_rpmconfigdir}/cargodeps

  

  %cargo_registry %{_usrsrc}/rust

  

- %cargo_prep() %{expand:\

+ %__cargo_is_lib() %{expand:%__cargo_inspector --target-kinds Cargo.toml | grep -q -F lib}

+ %__cargo_is_bin() %{expand:%__cargo_inspector --target-kinds Cargo.toml | grep -q -F bin}

+ 

+ %cargo_prep %{expand:\

  %{__mkdir} -p .cargo && cat > .cargo/config << EOF \

  [build]\

  rustc = "%{__rustc}"\
@@ -26,12 +30,18 @@ 

  

  %cargo_test() %{expand:%__cargo test %{__cargo_common_opts} %{?1}}

  

- %cargo_install() %{expand:%__cargo install %{?_smp_mflags}               \\\

-                                            --path .                      \\\

-                                            --root %{buildroot}%{_prefix} \\\

-                                            %{?1}                         \\\

-                    && rm %{buildroot}%{_prefix}/.crates.toml}

- 

- %cargo_install_crate() %{expand: mkdir -p %{buildroot}%{cargo_registry}/%{1} &&        \\\

-   %__cargo package -l | xargs cp --parents -p -t %{buildroot}%{cargo_registry}/%{1} && \\\

-   echo '{"files":{},"package":""}' >%{buildroot}%{cargo_registry}/%{1}/.cargo-checksum.json}

+ %cargo_install %{expand:(\

+ 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                 \

+   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 \

+ )}

rebased

7 years ago

Pull-Request has been merged by ignatenkobrain

7 years ago
Metadata