Setup: getModificationTime returns UTCTime as of GHC 7.6

This commit is contained in:
Ben Gamari 2012-09-21 10:41:04 -04:00
parent bb4ea9d422
commit a96982e701

View file

@ -1,3 +1,5 @@
{-# LANGUAGE CPP #-}
import Distribution.Simple
import Distribution.Simple.Setup
(copyDest, copyVerbosity, fromFlag, installVerbosity, BuildFlags(..))
@ -20,6 +22,7 @@ import System.Time
import System.IO.Error ( isDoesNotExistError )
import Data.Maybe ( catMaybes )
import Data.List ( (\\) )
import Data.Time.Clock (UTCTime(..))
main :: IO ()
main = do
@ -82,7 +85,11 @@ modifiedDependencies :: FilePath -> [FilePath] -> IO [FilePath]
modifiedDependencies file dependencies = do
fileModTime <- catch (getModificationTime file) $
\e -> if isDoesNotExistError e
#if __GLASGOW_HASKELL__ >= 706
then return (UTCTime (toEnum 0) 0) -- the minimum ClockTime
#else
then return (TOD 0 0) -- the minimum ClockTime
#endif
else ioError e
depModTimes <- mapM getModificationTime dependencies
let modified = zipWith (\dep time -> if time > fileModTime then Just dep else Nothing) dependencies depModTimes