Если я строю свой проект на Haskell под nix-shell
, это выдает ошибку об отсутствии zlib
.
Если я собираю проект в nix-shell с использованием nix-shell -p zlib
, тогда проект видит zlib
и строитуспешно.
Как добавить пакет zlib
в файл shell.nix
, чтобы больше не требовалось передавать -p zlib
?
Примечание: сборки были выполнены с использованием cabal v2-build
Для построения со стеком мне пришлось сделать следующее
Вот как определяется мой shell.nix
:
{ nixpkgs ? import <nixpkgs> {}, compiler ? "default", doBenchmark ? false }:
let
inherit (nixpkgs) pkgs;
f = { mkDerivation, base, directory, stdenv, text, turtle, zlib }:
mkDerivation {
pname = "haskell-editor-setup";
version = "0.1.0.0";
src = ./.;
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [ base directory text turtle zlib ];
description = "Terminal program that will set up Haskell environment with a target selected editor or IDE";
license = stdenv.lib.licenses.gpl3;
};
haskellPackages = if compiler == "default"
then pkgs.haskellPackages
else pkgs.haskell.packages.${compiler};
variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;
drv = variant (haskellPackages.callPackage f {});
in
if pkgs.lib.inNixShell then drv.env else drv