@@ -1,14 +1,18 @@
11module Main where
22
3+import Data.List (isPrefixOf)
4+import System.Directory
5+import System.FilePath
36import System.FilePath.Find
47import Test.DocTest
58
69main :: IO ()
710main = do
811 files <- find always (extension ==? ".hs") "src"
12+ cabalMacrosFile <- getCabalMacrosFile
913 doctest $ [ "-isrc"
1014 , "-optP-include"
11− , "-optPdist/build/autogen/cabal_macros.h"
15+ , "-optP" ++ cabalMacrosFile
1216 , "-XOverloadedStrings"
1317 , "-XFlexibleInstances"
1418 , "-XMultiParamTypeClasses"
@@ -16,3 +20,10 @@ main = do
1620 , "-XTypeOperators"
1721 ] ++ files
1822
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