假设我没有安装HsColour程序,我安装了QuickCheck
$ cd /tmp/
$ cabal get QuickCheck
$ cd QuickCheck
$ cabal install
...
[ 1 of 15] Compiling Test.QuickCheck.Random
...
[15 of 15] Compiling Test.QuickCheck
...
Installed QuickCheck-2.7.6
如果我再次安装QuickCheck,则不会重新编译,也就是说,我看不到行
[ 1 of 15] Compiling Test.QuickCheck.Random
...
[15 of 15] Compiling Test.QuickCheck
但如果我安装HsColour当前版本(1.20.3)并再次安装QuickCheck,则会重新编译QuickCheck。
如果
,也会重新编译QuickCheck我使用GHC 7.8.3,Cabal 1.20.0.2和cabal-install 1.20.0.3以及Cabal和cabal-install的开发版本(使用https://github.com/haskell/cabal/commit/5ef7d84bb25cc5d53ad124978922f2c96bedb7d4)测试了这种行为。
答案 0 :(得分:2)
我不是专家,但我相信cabal会配置他所知道并且能够找到的所有构建工具。构建时,cabal使用宏生成cabal_macros.h
文件以测试构建工具版本。如果启用了CPP
扩展程序,则该文件随处可见,并且在cabal_macros.h
中的任何更改时都会重建所有内容。