我正在尝试将我的阴谋项目之一拆分为多个子库,以使用户不会带来不必要的依赖(或可能不在其平台中构建的依赖!),因为我打算重复使用我的代码库是ghcJs和Eta)。
我的集团文件中具有以下设置:
-- core application logic, should be able to be built cross-platform
library bli-base
hs-source-dirs:
src
...
-- library specifically for desktop use, not cross-platform
library bli-cli
hs-source-dirs:
src
build-depends:
base <5,
, bli-base
...
但是问题是,当阴谋集团要建造bli-cli
时,我会收到警告
<no location info>: warning: [-Wmissing-home-modules]
These modules are needed for compilation but not listed in your .cabal file's other-modules:
然后它列出了bli-base
中的一堆模块-然后尝试编译,然后失败,因为bli-cli
的依赖项不是{的依赖项的超集{1}}。
有什么办法可以避免这个问题?我想一种解决方案是仅将bli-base的所有依赖项复制到bli-cli,但这似乎不是很干。
(我正在使用堆栈来构建lts-12-26)