При построении зависимости Haskell от Nix, как избежать создания исполняемых файлов? - PullRequest
2 голосов
/ 27 октября 2019

В моем файле .nix есть пакеты foo и bar, с bar в зависимости от foo:

let
  haskellPackages = reflex-platform.ghcjs.override {
    overrides = self: super: {
      foo =
        pkgs.haskell.lib.dontCheck
          (pkgs.haskell.lib.dontHaddock
             (self.callCabal2nix "foo" ./foo { }));
      bar = self.callCabal2nix "bar" ./bar { };
    };
  };

in
  haskellPackages.bar

Как отключить сборку исполняемых файлов, содержащихся в foo? Я только хочу собрать библиотеку.

Я пытался overrideCabal, но без удачи. Это все еще создает исполняемый файл foo:

let
  haskellPackages = reflex-platform.ghcjs.override {
    overrides = self: super: {
      foo =
        pkgs.haskell.lib.overrideCabal
          (pkgs.haskell.lib.dontCheck
             (pkgs.haskell.lib.dontHaddock
                (self.callCabal2nix "foo" ./foo { })));
          (drv: { isExecutable = false; });
      bar = self.callCabal2nix "bar" ./bar { };
    };
  };

in
  haskellPackages.bar

Я могу воспроизвести ту же проблему с GHC вместо GHCJS.

...