@@ -1,14 +1,18 @@
1module Main where
1module Main where
3+import Data.List (isPrefixOf)
4+import System.Directory
3import System.FilePath.Find
6import System.FilePath.Find
4import Test.DocTest
7import Test.DocTest
6main :: IO ()
9main :: IO ()
8 files <- find always (extension ==? ".hs") "src"
11 files <- find always (extension ==? ".hs") "src"
12+ cabalMacrosFile <- getCabalMacrosFile
9 doctest $ [ "-isrc"
13 doctest $ [ "-isrc"
10 , "-optP-include"
14 , "-optP-include"
11− , "-optPdist/build/autogen/cabal_macros.h"
15+ , "-optP" ++ cabalMacrosFile
12 , "-XOverloadedStrings"
16 , "-XOverloadedStrings"
13 , "-XFlexibleInstances"
17 , "-XFlexibleInstances"
14 , "-XMultiParamTypeClasses"
18 , "-XMultiParamTypeClasses"
@@ -16,3 +20,10 @@ main = do
16 , "-XTypeOperators"
20 , "-XTypeOperators"
17 ] ++ files
21 ] ++ files
23+getCabalMacrosFile :: IO FilePath
24+getCabalMacrosFile = do
25+ contents <- getDirectoryContents "dist"
26+ let rest = "build" </> "autogen" </> "cabal_macros.h"
27+ return $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
28+ [x] -> "dist" </> x </> rest
29+ [] -> "dist" </> rest