Cabal"os"标志,带有操作系统版本

sam*_*lis 5 haskell cabal

我想要一个以操作系统版本为条件的标志,而不仅仅是操作系统:

if os(darwin) && os-version() >= 10.7
Run Code Online (Sandbox Code Playgroud)

要么

if os-version(>=10.7)
Run Code Online (Sandbox Code Playgroud)

或者具有那种行为的东西.

我可以做到这一点makesw_vers -productVersion,但我想保持与阴谋集团的文件build-type: Simple(我的意思是它甚至有一个frameworks字段).

上下文:我对OSX 10.7中引入的一些Cocoa函数有一些绑定.我希望Cabal不要试图在较旧的Mac上构建,而不是通过无用的"符号未找到"错误或诸如此类的方式向安装包的人发送垃圾邮件.

https://www.haskell.org/cabal/users-guide/developing-packages.html#configurations(在"条件"下)似乎说不.

scl*_*clv 2

你是对的。Cabal 不提供此功能。这是相关的票证。但是,对于 OS X,您不一定需要从build-type: Simple. 相反,您可以使用CPP苹果提供的宏,如另一个 SO 问题中所讨论的。