Кабала перекомпилирует все модули для каждого подмодуля в проекте - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь разбить один из моих проектов клики на несколько подбиблиотек, чтобы пользователи не вносили ненужных зависимостей (или зависимостей, которые могут не быть встроены в их платформу!), Поскольку я намерен повторно использовать части моя кодовая база в gh cJs и Eta).

У меня есть следующая настройка в моем файле cabal:

-- 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
     ...

Но проблема в том, когда клика попадает в building 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 не являются супернабором зависимостей bli-base.

Есть ли способ избежать этой проблемы? Я полагаю, что одним из решений было бы просто скопировать все зависимости bli-base в bli-cli, но это не кажется очень DRY.

(я использую стек для сборки с lts -12-26)

...