mirror of
https://github.com/NotAShelf/microfetch.git
synced 2025-12-08 05:53:51 +00:00
nix: build with Mold linker on x86_64-linux
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I771c36297577aba189058a2183ec2b4a6a6a6964
This commit is contained in:
parent
3ad14a95a6
commit
8c32f5f408
3 changed files with 27 additions and 6 deletions
|
|
@ -1,14 +1,22 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
stdenv,
|
||||
stdenvAdapters,
|
||||
rustPlatform,
|
||||
llvm,
|
||||
useMold ? stdenv.isLinux && !stdenv.hostPlatform.isAarch,
|
||||
}: let
|
||||
toml = (lib.importTOML ../Cargo.toml).package;
|
||||
pname = toml.name;
|
||||
inherit (toml) version;
|
||||
|
||||
# Select stdenv based on useMold flag
|
||||
stdenv =
|
||||
if useMold
|
||||
then stdenvAdapters.useMoldLinker llvm.stdenv
|
||||
else llvm.stdenv;
|
||||
in
|
||||
rustPlatform.buildRustPackage.override {stdenv = stdenvAdapters.useMoldLinker llvm.stdenv;} {
|
||||
rustPlatform.buildRustPackage.override {inherit stdenv;} {
|
||||
inherit pname version;
|
||||
src = let
|
||||
fs = lib.fileset;
|
||||
|
|
@ -26,7 +34,14 @@ in
|
|||
|
||||
cargoLock.lockFile = ../Cargo.lock;
|
||||
enableParallelBuilding = true;
|
||||
env.RUSTFLAGS = "-C link-arg=-fuse-ld=mold";
|
||||
buildNoDefaultFeatures = true;
|
||||
doCheck = false;
|
||||
|
||||
# Only set RUSTFLAGS for mold if useMold is enabled
|
||||
env = lib.optionalAttrs useMold {
|
||||
CARGO_LINKER = "clang";
|
||||
RUSTFLAGS = "-C link-arg=-fuse-ld=mold";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Microscopic fetch script in Rust, for NixOS systems";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue