使用Nix构建Haskell依赖项时,如何避免生成可执行文件?

时间:2019-10-27 20:23:59

标签: haskell nix

在我的.nix文件中,我有软件包foobar,其中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重现同样的问题。

0 个答案:

没有答案