2013-09-09 2 views
4

Я пытаюсь написать пакет в Haskell. Этот пакет содержит библиотеку и исполняемый файл. Я указываю это в файле Cabal. Существуют три основных компонента библиотеки:Переменная в Cabal (Haskell)

1) Существуют открытые модули библиотеки

2) Там являются внутренние сборки-зависимостей, которые не должны быть экспортированы как часть библиотеки

3) Существуют внешние зависимости построения.

В файле Cabal имеется некоторое перекрытие. Для библиотеки я пишу:

открытых модули: список Exposed модулей

других-модули: список других модулей

накопление зависит: список зависимостей сборки

Тогда для исполняемого файла другие модули: список исполняемых модулей и других модулей необходим в исполняемом файле build-depends: список зависимостей построения

Что такое woul d be nice is if Cabal позволяет мне иметь переменную.

V1 = Список открытых модулей

V2 = Список других модули

V3 = Список зависимостей для сборки

Затем в исполняемом файле, например, я мог бы сделать

других-модулей: V1, V2

строительный материал: V3

В качестве альтернативы, я бы рекомендовал лучше использовать систему Cabal!

ответ

2

Нет, это еще не возможно. Я думаю, что у нас есть запрос функции для чего-то подобного в вопросительном трекере. Заметим, однако, что ваш исполняемый файл может зависеть от библиотеки, определенной в том же .cabal файле, так что вам не придется делить exposed-modules и other-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.

+0

Спасибо! Зависимость от того же пакета решает мою проблему. –

Смежные вопросы