git.iko.soy/typeable/http-api-data
on master help sign in
Add libAutogenDir to iArgs
commitf15e04ec503420175bab88b3be90f5d7852b2da0 authorOleg Grenrus <oleg.grenrus@iki.fi> dateFri 13 Jan 2017, 10:58 (10 years ago) parentb473c6a
2 files changed+17−27
Setup.lhs+10−5 test/DocTest.hsc+7−22
Setup.lhs+10−5
@@ -45,9 +45,10 @@ generateBuildModule flags pkg lbi = do
4545 withLibLBI pkg lbi $ \lib libcfg -> do
4646 let libBI = libBuildInfo lib
4747
48− -- Lib sources and includes
49− let iArgs = map ("-i"++) $ hsSourceDirs libBI
50− let includeArgs = map ("-I"++) $ includeDirs libBI
48+ -- modules
49+ let modules = exposedModules lib ++ otherModules libBI
50+ -- it seems that doctest is happy to take in module names, not actual files!
51+ let module_sources = modules
5152
5253 -- We need the directory with library's cabal_macros.h!
5354#if MIN_VERSION_Cabal(1,25,0)
@@ -56,6 +57,10 @@ generateBuildModule flags pkg lbi = do
5657 let libAutogenDir = autogenModulesDir lbi
5758#endif
5859
60+ -- Lib sources and includes
61+ let iArgs = map ("-i"++) $ libAutogenDir : hsSourceDirs libBI
62+ let includeArgs = map ("-I"++) $ includeDirs libBI
63+
5964 -- CPP includes, i.e. include cabal_macros.h
6065 let cppFlags = [ "-optP-include", "-optP" ++ libAutogenDir ++ "/cabal_macros.h" ]
6166
@@ -82,8 +87,8 @@ generateBuildModule flags pkg lbi = do
8287 , "flags :: [String]"
8388 , "flags = " ++ show (iArgs ++ includeArgs ++ dbFlags ++ cppFlags)
8489 , ""
85− , "src_dirs :: [String]"
86− , "src_dirs = " ++ show (hsSourceDirs libBI)
90+ , "module_sources :: [String]"
91+ , "module_sources = " ++ show (map display module_sources)
8792 ]
8893 where
8994 -- we do this check in Setup, as then doctests don't need to depend on Cabal
test/DocTest.hsc+7−22
@@ -15,14 +15,11 @@
1515-----------------------------------------------------------------------------
1616module Main where
1717
18−import Build_doctests (flags, pkgs, src_dirs)
18+import Build_doctests (flags, pkgs, module_sources)
1919#if __GLASGOW_HASKELL__ < 710
2020import Control.Applicative
2121#endif
22−import Control.Monad
23−import Data.List
24−import System.Directory
25−import System.FilePath
22+import Data.Foldable (traverse_)
2623import Test.DocTest
2724
2825##if defined(mingw32_HOST_OS)
@@ -54,24 +51,12 @@ withUnicode m = m
5451##endif
5552
5653main :: IO ()
57−main = withUnicode $ getSources >>= \sources -> do
58− mapM_ putStrLn (args sources)
59− doctest (args sources)
54+main = withUnicode $ do
55+ traverse_ putStrLn args
56+ doctest args
6057 where
61− args sources =
58+ args =
6259#ifdef TRUSTWORTHY
6360 "-DTRUSTWORTHY=1" :
6461#endif
65− flags ++ pkgs ++ sources
66−
67−getSources :: IO [FilePath]
68−getSources = filter (isSuffixOf ".hs") . concat <$> mapM go src_dirs
69− where
70− go dir = do
71− (dirs, files) <- getFilesAndDirectories dir
72− (files ++) . concat <$> mapM go dirs
73−
74−getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])
75−getFilesAndDirectories dir = do
76− c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir
77− (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c
62+ flags ++ pkgs ++ module_sources