Как импортировать библиотеку из одного пакета cabal в другой

Итак, моя структура папок такая

      .
├── eulerlibs
│  ├── EulerLibs
│  └── eulerlibs.cabal
├── flake.lock
├── flake.nix
├── p001
│  ├── Main.hs
│  └── p001.cabal
├── p002
│  ├── Main.hs
│  └── p002.cabal
├── p003
│  ├── Main.hs
│  └── p003.cabal
├── p004
│  ├── Main.hs
│  └── p004.cabal
├── p005
│  ├── Main.hs
│  └── p005.cabal

Я пытаюсь импортировать модули библиотеки в ./eulerlibs (библиотека) каталог кабалы, чтобы сказать ./p005(исполняемый) каталог cabal.
Я понимаю, что могу включать встроенные библиотеки (* .so), но не могу найти способ связать два проекта Cabal.
Я новичок в Cabal, а также в haskell, поэтому я буду очень благодарен за некоторое понимание. Если ничего не получится, мне придется добавить библиотеку в сам p005, чего я действительно хочу избежать.

1 ответ

Вы можете сделать это с помощью файла. Поместите его на верхнем уровне (в . каталог) с этим содержимым:

      packages: */*.cabal

Затем вы сможете использовать все эти библиотеки в файлах cabal друг друга в зависимостях сборки, например, в p001.cabal:

      ...

library
  ...
  build-depends: base, eulerlibs
  ...

...

Вот полная документация cabal.projectфайлы: https://cabal.readthedocs.io/en/latest/cabal-project.html

Другие вопросы по тегам