2015-03-30 3 views
5

Vorrei una bandiera che è condizionato dalla versione del sistema operativo, e non solo il sistema operativo:Cabal flag "os" con la versione del sistema operativo

if os(darwin) && os-version() >= 10.7 

o

if os-version(>=10.7) 

o qualcosa con quel comportamento.

ho potuto farlo con make e sw_vers -productVersion, ma voglio mantenere il file Cabal con build-type: Simple (voglio dire che ha anche un campo frameworks).

Contesto: ho alcune associazioni ad alcune funzioni Cocoa introdotte in OSX 10.7 o giù di lì. Mi piacerebbe che Cabal non provasse a costruire su Mac più vecchi, piuttosto che a spammare la persona che installa il pacchetto con errori "non trovato" inutili o quant'altro.

https://www.haskell.org/cabal/users-guide/developing-packages.html#configurations (in "condizioni") sembra dire di no.

risposta

1

Sei corretto. La cabala non offre questa funzionalità. Ecco lo relevant ticket. Tuttavia, per OS X non è necessario spostarsi necessariamente da build-type: Simple. Piuttosto è possibile utilizzare CPP e le macro fornite da Apple, come discusso allo another SO question.