packages feed

kansas-lava-shake-0.1.2: src/Development/KansasLava/Shake.hs

module Development.KansasLava.Shake
       ( lavaRules
       ) where

import Development.Shake
import Development.Shake.FilePath
import Language.KansasLava.VHDL (writeVhdlPrelude)

lavaRules :: FilePath -> String -> String -> Rules ()
lavaRules modName vhdl ucf = do
    "gensrc" </> modName <.> "vhdl" *> \target -> do
        alwaysRerun
        writeFileChanged target vhdl
    "gensrc" </> modName <.> "ucf" *> \target -> do
        alwaysRerun
        writeFileChanged target ucf
    "gensrc/lava-prelude.vhdl" *> \target -> do
        alwaysRerun
        withTempFile $ \tempFile -> do
            liftIO $ writeVhdlPrelude tempFile
            copyFileChanged tempFile target