Często mam podobne właściwości w wielu strofach moich plików .cabal
. Na przykład.Eliminowanie powtórzeń w plikach cabowych
Library x
...
ghc-options:
-O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns
-fno-warn-name-shadowing
Executable y
...
ghc-options:
-O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns
-fno-warn-name-shadowing
Utrzymanie ich spójności jest uciążliwe i podatne na błędy. Czy istnieje lepszy sposób?
Jeszcze trudniejsze jest, gdy pola są podobne, ale nie identyczne, np. gdy mam kilka plików wykonywalnych, które mają wspólne zależności budowania, ale małe odmiany.
Nie sądzę, że obecnie istnieje dobre rozwiązanie. Dwie możliwości ominięcia tego problemu w częściach to: (A) użycie wielu pól 'ghc-options' na komponent (tak, to jest możliwe), dzięki czemu opcje wspólne są całkowicie identyczne, a różnice łatwiejsze do utrzymania; i (B) generować plik Cabal z jakiegoś innego źródła, które nie zawiera zbędnych informacji. – kosmikus