Skip to content

Commit a7e4e9d

Browse files
committed
fix: use cross pkgs when building for cross system
1 parent 2083842 commit a7e4e9d

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

nix/public-flake-module.nix

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,15 @@ ourArgs:
3333
, path
3434
, ...
3535
}:
36-
import path {
37-
pkgs =
36+
let
37+
# Remove target from final crate overrides
38+
# If target is an attrset, mkDerivation tries to coerce it to a string
39+
cleanedCrateOverrides =
40+
lib.mapAttrs
41+
(_: override: attrs: lib.removeAttrs (override attrs) [ "target" ])
42+
cfg.crateOverrides;
43+
44+
finalPkgs =
3845
if target == null then pkgs
3946
else import pkgs.path {
4047
inherit (pkgs) system config overlays;
@@ -43,12 +50,15 @@ ourArgs:
4350
then { config = target; }
4451
else target;
4552
};
46-
47-
buildRustCrateForPkgs = _: pkgs.buildRustCrate.override {
53+
in
54+
import path {
55+
pkgs = finalPkgs;
56+
buildRustCrateForPkgs = _: finalPkgs.buildRustCrate.override {
4857
inherit cargo;
4958
rustc = rust;
5059
};
51-
defaultCrateOverrides = pkgs.defaultCrateOverrides // cfg.crateOverrides;
60+
defaultCrateOverrides = finalPkgs.defaultCrateOverrides
61+
// cleanedCrateOverrides;
5262
};
5363

5464
# Handle possible cross compiling requests in crateOverrides

0 commit comments

Comments
 (0)