kansas-lava-shake-0.2.0: src/Development/KansasLava/Shake.hs
module Development.KansasLava.Shake
( lavaRules
) where
import Development.Shake
import Development.Shake.FilePath
import Language.KansasLava.VHDL (writeVhdlPrelude)
import Control.Monad
lavaRules :: FilePath -> [(FilePath, String)] -> Rules ()
lavaRules outDir genVHDLs = do
outDir </> "gensrc/lava-prelude.vhdl" %> \out -> do
alwaysRerun
withTempFile $ \tempFile -> do
liftIO $ writeVhdlPrelude tempFile
copyFileChanged tempFile out
forM_ genVHDLs $ \(modName, vhdl) -> do
outDir </> "gensrc" </> modName <.> "vhdl" %> \out -> do
alwaysRerun
writeFileChanged out vhdl