summaryrefslogtreecommitdiff
path: root/utils/hpc
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hpc')
-rw-r--r--utils/hpc/HpcDraft.hs1
-rw-r--r--utils/hpc/HpcFlags.hs18
-rw-r--r--utils/hpc/HpcMarkup.hs1
-rw-r--r--utils/hpc/HpcOverlay.hs1
-rw-r--r--utils/hpc/HpcReport.hs1
-rw-r--r--utils/hpc/HpcShowTix.hs1
6 files changed, 17 insertions, 6 deletions
diff --git a/utils/hpc/HpcDraft.hs b/utils/hpc/HpcDraft.hs
index c0b5c47e15..b804d568e4 100644
--- a/utils/hpc/HpcDraft.hs
+++ b/utils/hpc/HpcDraft.hs
@@ -18,6 +18,7 @@ draft_options
. includeOpt
. srcDirOpt
. hpcDirOpt
+ . resetHpcDirsOpt
. outputOpt
draft_plugin :: Plugin
diff --git a/utils/hpc/HpcFlags.hs b/utils/hpc/HpcFlags.hs
index b66d418e6c..3bb31639b1 100644
--- a/utils/hpc/HpcFlags.hs
+++ b/utils/hpc/HpcFlags.hs
@@ -13,7 +13,7 @@ data Flags = Flags
{ outputFile :: String
, includeMods :: Set.Set String
, excludeMods :: Set.Set String
- , hpcDir :: String
+ , hpcDirs :: [String]
, srcDirs :: [String]
, destDir :: String
@@ -34,7 +34,7 @@ default_flags = Flags
{ outputFile = "-"
, includeMods = Set.empty
, excludeMods = Set.empty
- , hpcDir = ".hpc"
+ , hpcDirs = [".hpc"]
, srcDirs = []
, destDir = "."
@@ -72,7 +72,8 @@ anArg flag detail argtype fn = (:) $ Option [] [flag] (ReqArg fn argtype) detail
infoArg :: String -> FlagOptSeq
infoArg info = (:) $ Option [] [] (NoArg $ id) info
-excludeOpt, includeOpt, hpcDirOpt, srcDirOpt, destDirOpt, outputOpt,
+excludeOpt, includeOpt, hpcDirOpt, resetHpcDirsOpt, srcDirOpt,
+ destDirOpt, outputOpt,
perModuleOpt, decListOpt, xmlOutputOpt, funTotalsOpt,
altHighlightOpt, combineFunOpt, combineFunOptInfo, mapFunOpt,
mapFunOptInfo, unionModuleOpt :: FlagOptSeq
@@ -82,10 +83,14 @@ excludeOpt = anArg "exclude" "exclude MODULE and/or PACKAGE" "[PACKAGE:]
includeOpt = anArg "include" "include MODULE and/or PACKAGE" "[PACKAGE:][MODULE]"
$ \ a f -> f { includeMods = a `Set.insert` includeMods f }
-hpcDirOpt = anArg "hpcdir" "sub-directory that contains .mix files" "DIR"
- (\ a f -> f { hpcDir = a })
+hpcDirOpt = anArg "hpcdir" "append sub-directory that contains .mix files" "DIR"
+ (\ a f -> f { hpcDirs = hpcDirs f ++ [a] })
. infoArg "default .hpc [rarely used]"
+resetHpcDirsOpt = noArg "reset-hpcdirs" "empty the list of hpcdir's"
+ (\ f -> f { hpcDirs = [] })
+ . infoArg "[rarely used]"
+
srcDirOpt = anArg "srcdir" "path to source directory of .hs files" "DIR"
(\ a f -> f { srcDirs = srcDirs f ++ [a] })
. infoArg "multi-use of srcdir possible"
@@ -130,8 +135,9 @@ unionModuleOpt = noArg "union"
-------------------------------------------------------------------------------
readMixWithFlags :: Flags -> Either String TixModule -> IO Mix
-readMixWithFlags flags modu = readMix [ dir ++ "/" ++ hpcDir flags
+readMixWithFlags flags modu = readMix [ dir ++ "/" ++ hpcDir
| dir <- srcDirs flags
+ , hpcDir <- hpcDirs flags
] modu
-------------------------------------------------------------------------------
diff --git a/utils/hpc/HpcMarkup.hs b/utils/hpc/HpcMarkup.hs
index bd297828e5..ebec912352 100644
--- a/utils/hpc/HpcMarkup.hs
+++ b/utils/hpc/HpcMarkup.hs
@@ -29,6 +29,7 @@ markup_options
. includeOpt
. srcDirOpt
. hpcDirOpt
+ . resetHpcDirsOpt
. funTotalsOpt
. altHighlightOpt
. destDirOpt
diff --git a/utils/hpc/HpcOverlay.hs b/utils/hpc/HpcOverlay.hs
index d5566aa6ae..531018cd0c 100644
--- a/utils/hpc/HpcOverlay.hs
+++ b/utils/hpc/HpcOverlay.hs
@@ -13,6 +13,7 @@ overlay_options :: FlagOptSeq
overlay_options
= srcDirOpt
. hpcDirOpt
+ . resetHpcDirsOpt
. outputOpt
overlay_plugin :: Plugin
diff --git a/utils/hpc/HpcReport.hs b/utils/hpc/HpcReport.hs
index 12403eb5b3..a97d6b0981 100644
--- a/utils/hpc/HpcReport.hs
+++ b/utils/hpc/HpcReport.hs
@@ -272,6 +272,7 @@ report_options
. includeOpt
. srcDirOpt
. hpcDirOpt
+ . resetHpcDirsOpt
. xmlOutputOpt
diff --git a/utils/hpc/HpcShowTix.hs b/utils/hpc/HpcShowTix.hs
index 354ee066b0..13a28754aa 100644
--- a/utils/hpc/HpcShowTix.hs
+++ b/utils/hpc/HpcShowTix.hs
@@ -13,6 +13,7 @@ showtix_options
. includeOpt
. srcDirOpt
. hpcDirOpt
+ . resetHpcDirsOpt
. outputOpt
showtix_plugin :: Plugin