2015-02-25 11 views
8

Zrobiłem własny pakiet cabal (nazwijmy go pakiet-1) dwoma celami, biblioteką i plikiem wykonywalnym. Sekcja biblioteki ma listę zależności od kompilacji, a plik wykonywalny ma inną listę zależną od kompilacji, która jest znacznie większa.Kiedy jesteś zależny od pakietu cabal, wydaje się, że rysujesz zależności we wszystkich wersjach kabalowych.

Teraz tworzę pakiet-2, który wyświetla pakiet-1 w sekcji "zależy od wersji". Chciałbym tylko wprowadzić zależności wymienione w bibliotece biblioteki celu pakietu 1. Ale wydaje się, że wszystkie zależności wymienione w wszystkich sekcjach pakietu-1, łącznie z zależnościami wykonywanego obiektu docelowego, przynoszą wszystkie zależności.

Czy istnieje sposób na przycinanie wykresu zależności tylko do biblioteki w pakiecie 1, lub czy muszę uciekać się do podziału tego celu biblioteki w oddzielny pakiet autonomiczny?

+0

Jest to dobrze znane i od dawna problem, pytanie zostało zadane na SO (jest to dupe), i istnieją pewne obejścia. –

+1

@BartekBanachewicz Widziałem to już wcześniej: http://stackoverflow.com/questions/10163604/how-to-reduce-duplication-in-the-build-depends-fields-of-a-cabal-file?rq = 1, do którego możesz się odwoływać, ale moje pytanie jest inne. – dan

Odpowiedz

3

Można umieścić Buildable: False do pliku wykonywalnego, a następnie zbudować go wyraźnie w razie potrzeby z cabal build Foo lub poprzez flagi (cabal configure -fbuild-foo lub -fbuild-executables).

Przykład, które mogłyby być pomocne: Cabal Multiple Executables

Powiązane problemy