The original reason for not using this was to work around a mistake on our end. When we specified `nix` via the `extra-libraries` clause of the `.cabal` file instead of `pkgconfig-depends` that messed up the file generated by `cabal2nix` which entailed various work-arounds. Those workarounds are no longer necessary, so we can switch to `packageSourceOverrides`
70 lines
1.8 KiB
Nix
70 lines
1.8 KiB
Nix
{ inputs = {
|
|
nixpkgs.url = github:NixOS/nixpkgs/22.05;
|
|
|
|
utils.url = github:numtide/flake-utils;
|
|
|
|
flake-compat = {
|
|
url = "github:edolstra/flake-compat";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = { nixpkgs, utils, ... }:
|
|
utils.lib.eachDefaultSystem (system:
|
|
let
|
|
overlay = pkgsNew: pkgsOld: {
|
|
haskellPackages = pkgsOld.haskellPackages.override (old: {
|
|
overrides =
|
|
pkgsNew.lib.fold pkgsNew.lib.composeExtensions (old.overrides or (_: _: { })) [
|
|
(pkgsNew.haskell.lib.packageSourceOverrides {
|
|
nix-serve-ng = ./.;
|
|
})
|
|
(haskellPackagesNew: haskellPackagesOld: {
|
|
nix-serve-ng =
|
|
pkgsNew.haskell.lib.overrideCabal
|
|
haskellPackagesOld.nix-serve-ng
|
|
(old: {
|
|
executableSystemDepends = (old.executableSystemDepends or []) ++ [
|
|
pkgsNew.boost.dev
|
|
];
|
|
});
|
|
})
|
|
];
|
|
});
|
|
|
|
nix-serve-ng =
|
|
pkgsNew.haskell.lib.justStaticExecutables
|
|
pkgsNew.haskellPackages.nix-serve-ng;
|
|
};
|
|
|
|
pkgs = import nixpkgs {
|
|
config = { };
|
|
|
|
overlays = [ overlay ];
|
|
|
|
inherit system;
|
|
};
|
|
|
|
inherit (pkgs) nix-serve-ng;
|
|
|
|
in
|
|
rec {
|
|
packages.default = nix-serve-ng;
|
|
|
|
defaultPackage = packages.default;
|
|
|
|
apps.default = {
|
|
type = "app";
|
|
|
|
program = "${nix-serve-ng}/bin/nix-serve-ng";
|
|
};
|
|
|
|
defaultApp = apps.default;
|
|
|
|
devShells.default =
|
|
(pkgs.haskell.lib.doBenchmark pkgs.haskellPackages.nix-serve-ng).env;
|
|
|
|
devShell = devShells.default;
|
|
});
|
|
}
|