以是否使用 llvm 进行编译为条件的 Cabal 编译
Cabal compilation conditional on compiling with llvm or not
在我正在编写的库中,我需要使用 CPP
在两个代码块之间进行选择,具体取决于我的用户是使用 LLVM 还是本机代码 gen 进行编译。有没有办法在 .cabal
文件中检测到它并执行类似
的操作
library
-- not real:
if backend(llvm)
CPP-Options: -DUSING_LLVM
或者甚至可以检测传递给 GHC 的任意标志(而不仅仅是 -fllvm
)?
啊,我忘了查看 GHC 文档。 GHC 定义了一个宏 __GLASGOW_HASKELL_LLVM__
,它是在指定 -fllvm
时定义的(也可用于检查 llvm 版本):
在我正在编写的库中,我需要使用 CPP
在两个代码块之间进行选择,具体取决于我的用户是使用 LLVM 还是本机代码 gen 进行编译。有没有办法在 .cabal
文件中检测到它并执行类似
library
-- not real:
if backend(llvm)
CPP-Options: -DUSING_LLVM
或者甚至可以检测传递给 GHC 的任意标志(而不仅仅是 -fllvm
)?
啊,我忘了查看 GHC 文档。 GHC 定义了一个宏 __GLASGOW_HASKELL_LLVM__
,它是在指定 -fllvm
时定义的(也可用于检查 llvm 版本):