packages feed

TimePiece-0.0.3: Setup.lhs

#!/usr/bin/env runghc
> import Data.List
> import Distribution.Simple
> import System.IO (hGetContents)
> import System.Process (waitForProcess, runInteractiveCommand)
> 
> main :: IO ()
> main = writeBuildInfo >> defaultMainWithHooks defaultUserHooks
> 
> writeBuildInfo :: IO ()
> writeBuildInfo = do
>    (_,out,_,pid) <- runInteractiveCommand "sdl-config --prefix --libs --cflags"
>    res <- hGetContents out
>    length res `seq` waitForProcess pid
>    case lines res of
>        (prefix@(_:_):libs@(_:_):cflags@(_:_):_) -> do
>            let x `isSubStringOf` s = or [ x `isPrefixOf` t | t <- tails s ]
>            writeFile "TimePiece.buildinfo" $ unlines
>                [ "Include-Dirs: " ++ prefix ++ "/include"
>                , "Extra-Lib-Dirs: " ++ prefix ++ "/lib"
>                , "CC-Options: " ++ cflags
>                , "GHC-Options: " ++ unwords (map ("-optc"++) $ words cflags)
>                ] ++ if "SDLmain" `isSubStringOf` libs
>                    then "Extra-Libraries: SDLmain\n"
>                    else ""
>        _  -> return ()