Niedawno natknąłem się na kwestię "kabalnego piekła", którą udało mi się rozwiązać tylko ręcznie instalując transformers-compat
z flagą -f transformers3
w mojej kabalowej piaskownicy przed uruchomieniem cabal install
dla mojego projektu.Czy istnieje sposób definiowania flag dla zależności cabal?
Czy jest jakiś sposób, aby wskazać w pliku mojej aplikacji .cabal
, że zależę od biblioteki, tak że jest zbudowany z określoną flagą kompilacji?
Wygląda na to, że nie jest to możliwe. 'buiildDepends' jest zdefiniowany jako' [Dependency] ', gdzie' data Dependency = Dependency NazwaPakietu VersionRange'. Możesz użyć 'cabal install --constraint =" transformers-compat + transformers3 "'. –
W skrócie wygląda na to, że transformatory-compat mają być podkładkami używanymi do starych projektów ze starymi zależnościami. Czy możesz zaktualizować pakiet do nowej wersji transformatorów? –
Patrząc na plik 'transformers-compat.cabal', uważam, że solver powinien być w stanie znaleźć poprawne przypisanie flagi, jeśli odpowiednio ograniczysz zależność od' transformatorów '. Na przykład. 'build-depends: transformers> = 0.3 && <0.4' powinno zmusić solver do wybrania' transformers-compat + transformers3'. Jeśli to nie zadziała, może to być błąd w solwerze. –