summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Config/Finder.hs
blob: 6a7ad78972e07d447a76715b25f72ee91c98ec57 (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
25
26
27
28
29
30
31
32
33
34
module GHC.Driver.Config.Finder (
    FinderOpts(..),
    initFinderOpts
  ) where

import GHC.Prelude

import GHC.Driver.Session
import GHC.Unit.Finder.Types
import GHC.Data.FastString


-- | Create a new 'FinderOpts' from DynFlags.
initFinderOpts :: DynFlags -> FinderOpts
initFinderOpts flags = FinderOpts
  { finder_importPaths = importPaths flags
  , finder_lookupHomeInterfaces = isOneShot (ghcMode flags)
  , finder_bypassHiFileCheck = MkDepend == (ghcMode flags)
  , finder_ways = ways flags
  , finder_enableSuggestions = gopt Opt_HelpfulErrors flags
  , finder_workingDirectory = workingDirectory flags
  , finder_thisPackageName  = mkFastString <$> thisPackageName flags
  , finder_hiddenModules = hiddenModules flags
  , finder_reexportedModules = reexportedModules flags
  , finder_hieDir = hieDir flags
  , finder_hieSuf = hieSuf flags
  , finder_hiDir = hiDir flags
  , finder_hiSuf = hiSuf_ flags
  , finder_dynHiSuf = dynHiSuf_ flags
  , finder_objectDir = objectDir flags
  , finder_objectSuf = objectSuf_ flags
  , finder_dynObjectSuf = dynObjectSuf_ flags
  , finder_stubDir = stubDir flags
  }