1
規則生成的文件爲need
的正確方法是什麼?下面是我的嘗試:取決於生成的文件
import Development.Shake
import System.IO
import Control.Monad
main = do
s <- withBinaryFile "/dev/urandom" ReadMode $ replicateM 10 . hGetChar
shakeArgs shakeOptions $ do
want ["a.out"]
"generated" *> \target -> writeFileChanged target s
"*.out" *> \out -> do
need ["generated"]
writeFile' out =<< readFile' "generated"
但是,這導致規則generated
沒有得到重新運行,所以a.out
保持不變,經過反覆運行。
的確,「* .out」規則的'writeFile''和''generated''的生成都是存在於更多涉及操作中的存根。 – Cactus 2014-09-30 02:29:46