This commit is contained in:
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user