Skip to content

Commit

Permalink
rust: use mold
Browse files Browse the repository at this point in the history
  • Loading branch information
domenkozar committed Mar 26, 2024
1 parent 302bafa commit 9f2eeb3
Showing 1 changed file with 16 additions and 11 deletions.
27 changes: 16 additions & 11 deletions src/modules/languages/rust.nix
Original file line number Diff line number Diff line change
Expand Up @@ -82,23 +82,28 @@ in
# enable compiler tooling by default to expose things like cc
languages.c.enable = lib.mkDefault true;

# RUST_SRC_PATH is necessary when rust-src is not at the same location as
# as rustc. This is the case with the rust toolchain from nixpkgs.
env.RUST_SRC_PATH =
if cfg.toolchain ? rust-src
then "${cfg.toolchain.rust-src}/lib/rustlib/src/rust/library"
else pkgs.rustPlatform.rustLibSrc;

env =
let
darwinFlags = lib.optionalString pkgs.stdenv.isDarwin "-L framework=${config.devenv.profile}/Library/Frameworks";
in
{
# RUST_SRC_PATH is necessary when rust-src is not at the same location as
# as rustc. This is the case with the rust toolchain from nixpkgs.
RUST_SRC_PATH =
if cfg.toolchain ? rust-src
then "${cfg.toolchain.rust-src}/lib/rustlib/src/rust/library"
else pkgs.rustPlatform.rustLibSrc;
env.RUSTFLAGS = "${darwinFlags} -C link-arg=-fuse-ld=${pkgs.mold-wrapped}/bin/ld.mold";
env.RUSTDOCFLAGS = "${darwinFlags} -C link-arg=-fuse-ld=${pkgs.mold-wrapped}/bin/ld.mold";
env.CFLAGS = "${darwinFlags}";
};

pre-commit.tools.cargo = mkOverrideTools cfg.toolchain.cargo or null;
pre-commit.tools.rustfmt = mkOverrideTools cfg.toolchain.rustfmt or null;
pre-commit.tools.clippy = mkOverrideTools cfg.toolchain.clippy or null;
}
))
(lib.mkIf (cfg.enable && pkgs.stdenv.isDarwin) {
env.RUSTFLAGS = "-L framework=${config.devenv.profile}/Library/Frameworks";
env.RUSTDOCFLAGS = "-L framework=${config.devenv.profile}/Library/Frameworks";
env.CFLAGS = "-iframework ${config.devenv.profile}/Library/Frameworks";
})
(lib.mkIf (cfg.channel != "nixpkgs") (
let
rustPackages = fenix.packages.${pkgs.stdenv.system};
Expand Down

0 comments on commit 9f2eeb3

Please sign in to comment.