Cabal中的变量(Haskell)

Jon*_*her 5 haskell cabal

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

1)库中有暴露的模块

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

3)有外部构建依赖性.

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

exposed-modules:暴露模块列表

other-modules:其他模块列表

build-depends:构建依赖项列表

然后是可执行的其他模块:可执行构建依赖中需要公开的模块和其他模块的列表:构建依赖项列表

如果Cabal让我有一个变量,那会更好.

V1 =列出暴露的模块

V2 =列出其他模块

V3 =列出构建依赖项

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

其他模块:V1,V2

build-depends:V3

或者,我会建议更好地使用Cabal系统!

Mik*_*kov 3

不,这还不可能。我认为我们在某个问题跟踪器上有这样的功能请求。但请注意,您的可执行文件可以依赖于同一.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
Run Code Online (Sandbox Code Playgroud)

有关实际示例,请参见此处