1{2 craneLib,3 lib,4 pkgs,5}: let6 crateName = "remowt-agent";78 buildFor = {9 target,10 crossPkgs,11 }: let12 cc = crossPkgs.stdenv.cc;13 linkerEnv = "CARGO_TARGET_${lib.toUpper (builtins.replaceStrings ["-"] ["_"] target)}_LINKER";14 in15 craneLib.buildPackage ({16 src = craneLib.cleanCargoSource ../.;17 pname = "${crateName}-${target}";1819 cargoExtraArgs = "--locked -p ${crateName}";2021 CARGO_BUILD_TARGET = target;22 CARGO_BUILD_RUSTFLAGS = "-C target-feature=+crt-static";2324 depsBuildBuild = [cc];25 doCheck = false;26 }27 // {28 ${linkerEnv} = "${cc}/bin/${cc.targetPrefix}cc";29 });30in {31 x86_64 = buildFor {32 target = "x86_64-unknown-linux-musl";33 crossPkgs = pkgs;34 };35 aarch64 = buildFor {36 target = "aarch64-unknown-linux-musl";37 crossPkgs = pkgs.pkgsCross.aarch64-multiplatform-musl;38 };39 armv7l = buildFor {40 target = "armv7-unknown-linux-musleabihf";41 crossPkgs = pkgs.pkgsCross.armv7l-hf-multiplatform.pkgsMusl;42 };43}