Pass configure arguments through with Setup.hs
authorIan Lynagh <igloo@earth.li>
Thu, 24 May 2007 10:29:53 +0000 (10:29 +0000)
committerIan Lynagh <igloo@earth.li>
Thu, 24 May 2007 10:29:53 +0000 (10:29 +0000)
Setup.hs

index 14b3bc1..7feb905 100644 (file)
--- a/Setup.hs
+++ b/Setup.hs
@@ -11,8 +11,10 @@ import System.Environment
 main :: IO ()
 main = do args <- getArgs
           let (ghcArgs, args') = extractGhcArgs args
-              (_, args'') = extractConfigureArgs args'
+              (confArgs, args'') = extractConfigureArgs args'
               hooks = defaultUserHooks {
+                  postConf = add_configure_options confArgs
+                           $ postConf defaultUserHooks,
                   buildHook = add_ghc_options ghcArgs
                             $ buildHook defaultUserHooks }
           withArgs args'' $ defaultMainWithHooks hooks
@@ -42,6 +44,13 @@ removePrefix (x:xs) (y:ys)
  | x == y = removePrefix xs ys
  | otherwise = Nothing
 
+type PostConfHook = Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo
+                 -> IO ()
+
+add_configure_options :: [String] -> PostConfHook -> PostConfHook
+add_configure_options args f as cfs pd lbi
+ = f (as ++ args) cfs pd lbi
+
 type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO ()
 
 add_ghc_options :: [String] -> Hook a -> Hook a