diff options
author | Ross Paterson <ross@soi.city.ac.uk> | 2007-06-04 11:56:17 +0000 |
---|---|---|
committer | Ross Paterson <ross@soi.city.ac.uk> | 2007-06-04 11:56:17 +0000 |
commit | 81429d8cf7aaf0bbc12f05483f90d530e03e04bf (patch) | |
tree | c5a3aa203a2aaf5216a534b60be36d1c12996e75 /Setup.hs | |
parent | 1b862e36e39e978c0c0221f8fdffc319ff26e1aa (diff) |
--configure-option and --ghc-option are now provided by Cabal
Diffstat (limited to 'Setup.hs')
-rw-r--r-- | Setup.hs | 54 |
1 files changed, 1 insertions, 53 deletions
@@ -1,58 +1,6 @@ - module Main (main) where -import Data.List import Distribution.Simple -import Distribution.PackageDescription -import Distribution.Setup -import Distribution.Simple.LocalBuildInfo -import System.Environment main :: IO () -main = do args <- getArgs - let (ghcArgs, args') = extractGhcArgs args - (_, args'') = extractConfigureArgs args' - hooks = defaultUserHooks { - buildHook = add_ghc_options ghcArgs - $ buildHook defaultUserHooks } - withArgs args'' $ defaultMainWithHooks hooks - -extractGhcArgs :: [String] -> ([String], [String]) -extractGhcArgs = extractPrefixArgs "--ghc-option=" - -extractConfigureArgs :: [String] -> ([String], [String]) -extractConfigureArgs = extractPrefixArgs "--configure-option=" - -extractPrefixArgs :: String -> [String] -> ([String], [String]) -extractPrefixArgs the_prefix args - = let f [] = ([], []) - f (x:xs) = case f xs of - (wantedArgs, otherArgs) -> - case removePrefix the_prefix x of - Just wantedArg -> - (wantedArg:wantedArgs, otherArgs) - Nothing -> - (wantedArgs, x:otherArgs) - in f args - -removePrefix :: String -> String -> Maybe String -removePrefix "" ys = Just ys -removePrefix _ "" = Nothing -removePrefix (x:xs) (y:ys) - | x == y = removePrefix xs ys - | otherwise = Nothing - -type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO () - -add_ghc_options :: [String] -> Hook a -> Hook a -add_ghc_options args f pd lbi uhs x - = do let lib' = case library pd of - Just lib -> - let bi = libBuildInfo lib - opts = options bi ++ [(GHC, args)] - bi' = bi { options = opts } - in lib { libBuildInfo = bi' } - Nothing -> error "Expected a library" - pd' = pd { library = Just lib' } - f pd' lbi uhs x - +main = defaultMainWithHooks defaultUserHooks |