aboutsummaryrefslogtreecommitdiffhomepage
path: root/Setup.hs
diff options
context:
space:
mode:
authorGravatar Ross Paterson <ross@soi.city.ac.uk>2007-06-04 11:56:17 +0000
committerGravatar Ross Paterson <ross@soi.city.ac.uk>2007-06-04 11:56:17 +0000
commit81429d8cf7aaf0bbc12f05483f90d530e03e04bf (patch)
treec5a3aa203a2aaf5216a534b60be36d1c12996e75 /Setup.hs
parent1b862e36e39e978c0c0221f8fdffc319ff26e1aa (diff)
--configure-option and --ghc-option are now provided by Cabal
Diffstat (limited to 'Setup.hs')
-rw-r--r--Setup.hs54
1 files changed, 1 insertions, 53 deletions
diff --git a/Setup.hs b/Setup.hs
index 14b3bc1..7cf9bfd 100644
--- a/Setup.hs
+++ b/Setup.hs
@@ -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