有一些Hackage中特定于平台的库我想要使用(例如inotify、kqueue)。然而,关于如何使用条件编译在不同平台之间切换的文档似乎有点稀少。我在寻找相关文档时遇到了一些困难...
我可以使用哪些预处理器定义来在不同平台之间切换?
如何设置我的cabal文件以分别在linux/ osx上包含/排除inotify/ kqueue?
我希望这里记录的内容对其他人也有用,因此可能值得提及其他常见平台。在各个地方搜索这些东西是很傻的。
有一些Hackage中特定于平台的库我想要使用(例如inotify、kqueue)。然而,关于如何使用条件编译在不同平台之间切换的文档似乎有点稀少。我在寻找相关文档时遇到了一些困难...
我可以使用哪些预处理器定义来在不同平台之间切换?
如何设置我的cabal文件以分别在linux/ osx上包含/排除inotify/ kqueue?
我希望这里记录的内容对其他人也有用,因此可能值得提及其他常见平台。在各个地方搜索这些东西是很傻的。
os
块来选择整个源代码树,如果有整个模块需要针对不同操作系统进行不同的编写。而不是将cpp-options
块放在内部,而是将hs-source-dirs
块放在内部。 - Daniel Wagner