haskell - Cabal中的变量(Haskell)

标签 haskell cabal

我正在尝试在 Haskell 中编写一个包。这个包包含一个库和一个可执行文件。我在 Cabal 文件中指定了这一点。该库包含三个基本组件:

1)有库的暴露模块

2) 存在不应作为库的一部分导出的内部构建依赖项

3)存在外部构建依赖项。

Cabal 文件中有一些重叠。对于我写的图书馆:

暴露模块:暴露模块列表

other-modules:其他模块列表

build-depends:构建依赖项列表

然后对于可执行文件
other-modules:可执行文件中需要暴露的模块和其他模块的列表
build-depends:构建依赖项列表

如果 Cabal 让我有一个变量,那就太好了。

V1 = 列出暴露的模块

V2 = 列出其他模块

V3 = 列出构建依赖项

然后在可执行文件中,例如,我可以做

其他模块:V1,V2

构建依赖:V3

或者,我会推荐使用 Cabal 系统的更好方法!

最佳答案

不,这还不可能。我认为我们在某个地方的问题跟踪器上有类似这样的功能请求。但是请注意,您的可执行文件可能依赖于同一 .cabal 中定义的库。文件,因此您不必共享 exposed-modulesother-modules :

Name: some-package
Version: 0.1
[...]

Library
    build-depends: some-dependency >= 1.0, ...        
    exposed-modules: A, B, C
    other-modules: C, D, E
    [...]

Executable some-exe
    main-is: SomeExe.hs
    build-depends: some-package == 0.1

有关真实示例,请参阅 here .

关于haskell - Cabal中的变量(Haskell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18707546/

相关文章:

haskell - 我怎么能提前知道 cabal 将生成的可执行文件放在哪里?

haskell - 为什么 cabal 重新安装 "always dangerous"?

haskell - 使用 cabal 进行个人项目的常见工作流程是什么?

python - 从函数式语言访问 numpy 数组

haskell - 为什么 Haskell 不能正确排序这些 IO 操作?

Haskell GADTs - 为黎曼几何制作类型安全的张量类型

opengl - Haskell OpenGL 绑定(bind)中似乎存在错误

haskell - 使用 GHC,在用户空间安装带有 GMP 的 cabal

haskell - cabal 沙盒使用系统级包

haskell - 使用 Vim 在文本换行上自动继续 Haskell 注释中的前导破折号