summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Config
diff options
context:
space:
mode:
authorFendor <power.walross@gmail.com>2021-07-20 15:00:49 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-07-23 21:08:42 -0400
commit6c79981e646a9983e959ccbf67f6c11b86bdbc6f (patch)
tree1cc2dea0845c20331a5cf68b03eb211c0319554b /compiler/GHC/Driver/Config
parent509445b5947ce85499672399f5e88b6196af4c5a (diff)
downloadhaskell-6c79981e646a9983e959ccbf67f6c11b86bdbc6f.tar.gz
Introduce FinderLocations for decoupling Finder from DynFlags
Diffstat (limited to 'compiler/GHC/Driver/Config')
-rw-r--r--compiler/GHC/Driver/Config/Finder.hs26
1 files changed, 26 insertions, 0 deletions
diff --git a/compiler/GHC/Driver/Config/Finder.hs b/compiler/GHC/Driver/Config/Finder.hs
new file mode 100644
index 0000000000..4fa4278c09
--- /dev/null
+++ b/compiler/GHC/Driver/Config/Finder.hs
@@ -0,0 +1,26 @@
+module GHC.Driver.Config.Finder (
+ FinderOpts(..),
+ initFinderOpts
+ ) where
+
+import GHC.Prelude
+
+import GHC.Driver.Session
+import GHC.Unit.Finder
+
+-- | 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_hieDir = hieDir flags
+ , finder_hieSuf = hieSuf flags
+ , finder_hiDir = hiDir flags
+ , finder_hiSuf = hiSuf flags
+ , finder_objectDir = objectDir flags
+ , finder_objectSuf = objectSuf flags
+ , finder_stubDir = stubDir flags
+ }