diff options
author | K900 <me@0upti.me> | 2024-07-02 08:32:46 +0300 |
---|---|---|
committer | K900 <me@0upti.me> | 2024-07-02 08:32:46 +0300 |
commit | 665f1d6183a6581900ed8799dbfcd24dce2f1429 (patch) | |
tree | 256059aa7443e93203073739a68f194e45be838b /pkgs/build-support | |
parent | 1addc8dd4c469d3c52dbee0fd3e5bd1973c14527 (diff) | |
parent | 6f09d8200f3a1c629d2fbd899c53492416ca0525 (diff) |
Merge remote-tracking branch 'origin/master' into staging-next
Diffstat (limited to 'pkgs/build-support')
4 files changed, 14 insertions, 2 deletions
diff --git a/pkgs/build-support/node/fetch-npm-deps/default.nix b/pkgs/build-support/node/fetch-npm-deps/default.nix index d86fc90c6c7d1..a001f80b113ce 100644 --- a/pkgs/build-support/node/fetch-npm-deps/default.nix +++ b/pkgs/build-support/node/fetch-npm-deps/default.nix @@ -142,7 +142,7 @@ meta = with lib; { description = "Prefetch dependencies from npm (for use with `fetchNpmDeps`)"; mainProgram = "prefetch-npm-deps"; - maintainers = with maintainers; [ lilyinstarlight winter ]; + maintainers = with maintainers; [ winter ]; license = licenses.mit; }; }; diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix index ab872bac854f8..fd61d73deb722 100644 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix @@ -14,6 +14,7 @@ , crateLicenseFile , crateLinks , crateName +, crateType , crateReadme , crateRenames , crateRepository @@ -209,6 +210,11 @@ in '' EXTRA_LINK_LIBS=$(sed -n "s/^cargo::\{0,1\}rustc-link-lib=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ') EXTRA_LINK_SEARCH=$(sed -n "s/^cargo::\{0,1\}rustc-link-search=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ' | sort -u) + ${lib.optionalString (lib.elem "cdylib" crateType) '' + CRATE_TYPE_IS_CDYLIB="true" + EXTRA_CDYLIB_LINK_ARGS=$(sed -n "s/^cargo::\{0,1\}rustc-cdylib-link-arg=\(.*\)/-C link-arg=\1/p" target/build/${crateName}.opt | tr '\n' ' ') +''} + # We want to read part of every line that has cargo:rustc-env= prefix and # export it as environment variables. This turns out tricky if the lines # have spaces: we can't wrap the command in double quotes as that captures diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix index d6369055cc53b..841e8e86cbfb1 100644 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/default.nix @@ -357,7 +357,7 @@ crate_: lib.makeOverridable configurePhase = configureCrate { - inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription + inherit crateName crateType buildDependencies completeDeps completeBuildDeps crateDescription crateFeatures crateRenames libName build workspace_member release libPath crateVersion crateLinks extraLinkFlags extraRustcOptsForBuildRs crateLicense crateLicenseFile crateReadme crateRepository crateRustVersion diff --git a/pkgs/build-support/rust/build-rust-crate/lib.sh b/pkgs/build-support/rust/build-rust-crate/lib.sh index 0181ae432c85b..36ddc9ac23c4f 100644 --- a/pkgs/build-support/rust/build-rust-crate/lib.sh +++ b/pkgs/build-support/rust/build-rust-crate/lib.sh @@ -114,6 +114,12 @@ setup_link_paths() { tr '\n' ' ' < target/link > target/link_ LINK=$(cat target/link_) fi + + # Add "rustc-cdylib-link-arg" as linker arguments + # https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-cdylib-link-arg + if [[ -n "$CRATE_TYPE_IS_CDYLIB" ]]; then + EXTRA_BUILD+=" $EXTRA_CDYLIB_LINK_ARGS" + fi } search_for_bin_path() { |