Cabal编译条件是使用llvm编译或不编译

时间:2017-03-12 02:21:14

标签: haskell llvm cabal conditional-compilation

在我正在编写的库中,我需要使用CPP在两个代码块之间进行选择,具体取决于我的用户是使用LLVM还是本机代码编译。有没有办法在.cabal文件中检测到这种情况并执行类似

的操作
library
  -- not real:
  if backend(llvm)
      CPP-Options:     -DUSING_LLVM

或者甚至可以检测传递给GHC的任意标志(而不仅仅是-fllvm)?

1 个答案:

答案 0 :(得分:1)

啊,我忘了检查GHC文档。 GHC定义了一个宏__GLASGOW_HASKELL_LLVM__,它是在指定-fllvm时定义的(也可用于检查llvm版本):

https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/phases.html#options-affecting-the-c-pre-processor