This commit is contained in:
2026-09-01 10:45:21 -04:00
commit ac32649783
51 changed files with 4837 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
{ inputs, ... }:
{
perSystem =
{
pkgs,
wine-packages,
...
}:
let
runner = pkgs.callPackage ./package.nix {
inherit inputs wine-packages;
registry-patches = (pkgs.callPackage ../registry-patches.nix { }).combined;
prefixBase = "/non-functional-runner";
name = "v3";
};
in
{
checks = {
runner = runner.package;
runner-clippy = runner.package-clippy;
};
packages = {
runner = runner.package;
runner-artifacts = runner.package-artifacts;
};
};
}
+88
View File
@@ -0,0 +1,88 @@
{
pkgs,
lib,
inputs,
registry-patches,
wine-packages,
prefixBase,
name,
...
}:
let
craneLib = inputs.crane.mkLib pkgs;
src = craneLib.cleanCargoSource ../..;
commonArgs = {
inherit src;
strictDeps = true;
};
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
fileSetForCrate =
crate:
lib.fileset.toSource {
root = ../..;
fileset = lib.fileset.unions [
../../Cargo.toml
../../Cargo.lock
(craneLib.fileset.commonCargoSources crate)
];
};
env = {
WINE = lib.getExe wine-packages.wine;
WINESERVER = lib.getExe wine-packages.wineserver;
WINETRICKS = lib.getExe wine-packages.winetricks;
FUSE_OVERLAYFS = lib.getExe pkgs.fuse-overlayfs;
GNUTAR = lib.getExe pkgs.gnutar;
ZENITY = lib.getExe pkgs.zenity;
RSYNC = lib.getExe pkgs.rsync;
REGISTRY_PATCHES = registry-patches;
ON_LINUX = inputs.on-linux.outPath;
};
executableName = "affinity-${lib.toLower name}";
executable = craneLib.buildPackage (
commonArgs
// {
inherit cargoArtifacts env;
pname = executableName;
cargoExtraArgs = "-p runner --no-default-features --features ${lib.toLower name}";
src = fileSetForCrate ../../crates/runner;
meta.mainProgram = executableName;
postInstall = ''
mv $out/bin/runner $out/bin/affinity-${lib.toLower name}
'';
}
);
in
{
package =
pkgs.runCommand executableName
{
nativeBuildInputs = [ pkgs.makeWrapper ];
}
''
mkdir -p $out/bin
cp ${lib.getExe executable} $out/bin/${executableName}
wrapProgram $out/bin/${executableName} \
--set "LOWER_DIR" "${prefixBase}" \
'';
package-clippy = craneLib.cargoClippy (
commonArgs
// {
inherit cargoArtifacts env;
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
}
);
package-artifacts = cargoArtifacts;
}