【发布时间】:2018-01-13 11:45:45
【问题描述】:
默认情况下,我在没有nix 的情况下构建我的项目,并且可执行文件是静态链接的。但是当使用nix 构建时,我想动态链接它。于是我加了一个开关到myproj.cabal:
flag dynamic
description: Build only dynamic binaries
default: False
executable RunMe
ghc-options: -O2 -Wall
if !flag(dynamic)
ghc-options: -optl-static -static
现在我可以构建项目了
stack --nix --nix-packages=zlib install --flag myproj:dynamic
为了避免每次都传递命令行选项,我创建了shell.nix:
{ghc}:
with (import <nixpkgs> {});
haskell.lib.buildStackProject {
inherit ghc;
name = "myproj";
buildInputs = [ zlib ];
}
现在,我不知道如何将标志从 nix 文件传递给 cabal。基于buildStackProject的定义,我尝试设置buildPhase,例如
haskell.lib.buildStackProject {
...
buildPhase = "stack build --flag=myproj:dynamic";
}
但它似乎并没有改变任何东西。如何将标志从 nix 文件传递给 cabal?
【问题讨论】:
标签: haskell cabal haskell-stack nix