diff options
author | Ben Gamari <ben@smart-cactus.org> | 2018-10-23 14:20:13 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-10-23 14:20:13 -0400 |
commit | 94756201349685a34c4495addd3484fdfcc8b498 (patch) | |
tree | fd4a9cee20d3c2b79f56ded7e02fb0c01b26b6c9 /hadrian/src/Target.hs | |
parent | 575b35f4cdc18045bccd42d341d6f25d95c0696c (diff) | |
parent | 45f3bff7016a2a0cd9a5455a882ced984655e90b (diff) | |
download | haskell-94756201349685a34c4495addd3484fdfcc8b498.tar.gz |
Add 'hadrian/' from commit '45f3bff7016a2a0cd9a5455a882ced984655e90b'
git-subtree-dir: hadrian
git-subtree-mainline: 575b35f4cdc18045bccd42d341d6f25d95c0696c
git-subtree-split: 45f3bff7016a2a0cd9a5455a882ced984655e90b
Diffstat (limited to 'hadrian/src/Target.hs')
-rw-r--r-- | hadrian/src/Target.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/hadrian/src/Target.hs b/hadrian/src/Target.hs new file mode 100644 index 0000000000..30c8d98d14 --- /dev/null +++ b/hadrian/src/Target.hs @@ -0,0 +1,26 @@ +module Target ( + Target, target, context, builder, inputs, outputs, trackArgument, + module Builder + ) where + +import Data.Char +import Data.List.Extra + +import qualified Hadrian.Target as H +import Hadrian.Target hiding (Target) + +import Builder +import Context + +type Target = H.Target Context Builder + +-- | Some arguments do not affect build results and therefore do not need to be +-- tracked by the build system. A notable example is "-jN" that controls Make's +-- parallelism. Given a 'Target' and an argument, this function should return +-- 'True' only if the argument needs to be tracked. +trackArgument :: Target -> String -> Bool +trackArgument target arg = case builder target of + (Make _) -> not $ threadArg arg + _ -> True + where + threadArg s = dropWhileEnd isDigit s `elem` ["-j", "MAKEFLAGS=-j", "THREADS="] |