blob: d98b1a932775b715055b5b8f715dc5f6d5bf5dd1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
module Settings.Program
( programContext
) where
import Base
import Context
import Oracles.Flavour
import Packages
-- TODO: there is duplication and inconsistency between this and
-- Rules.Program.getProgramContexts. There should only be one way to
-- get a context/contexts for a given stage and package.
programContext :: Stage -> Package -> Action Context
programContext stage pkg = do
profiled <- askGhcProfiled
dynGhcProgs <- askDynGhcPrograms --dynamicGhcPrograms =<< flavour
return $ Context stage pkg (wayFor profiled dynGhcProgs)
where wayFor prof dyn
| prof && dyn =
error "programContext: profiling+dynamic not supported"
| pkg == ghc && prof && stage > Stage0 = profiling
| dyn && stage > Stage0 = dynamic
| otherwise = vanilla
|