aboutsummaryrefslogtreecommitdiff
path: root/src/CabalHelper/Runtime/Main.hs
diff options
context:
space:
mode:
authorAlan Zimmerman <alan.zimm@gmail.com>2018-01-06 14:47:07 +0200
committerDaniel Gröber <dxld@darkboxed.org>2018-01-18 14:10:26 +0100
commit0f5127e695c81bff09c0ddeba503a63d0b4c58d6 (patch)
tree55bebcffce9cd8c7a5a671a1fe556d8be195bc5d /src/CabalHelper/Runtime/Main.hs
parent4cb20eebfcc8b5d9aff91af9b8bd171d9281229d (diff)
When a component uses an internal backpack module, use cabal opts
Which includes inserting the inplace directory for package includes
Diffstat (limited to 'src/CabalHelper/Runtime/Main.hs')
-rw-r--r--src/CabalHelper/Runtime/Main.hs31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/CabalHelper/Runtime/Main.hs b/src/CabalHelper/Runtime/Main.hs
index b17e91d..e71b450 100644
--- a/src/CabalHelper/Runtime/Main.hs
+++ b/src/CabalHelper/Runtime/Main.hs
@@ -78,6 +78,9 @@ import Distribution.Simple.Program.GHC
( GhcOptions(..)
, renderGhcOptions
)
+import Distribution.Simple.Register
+ ( internalPackageDBPath
+ )
import Distribution.Simple.Setup
( ConfigFlags(..)
, Flag(..)
@@ -500,15 +503,7 @@ componentsMap lbi _v _distdir f = do
componentOptions' (lbi, v, distdir) inplaceFlag flags rf f = do
let pd = localPkgDescr lbi
#if CH_MIN_VERSION_Cabal(2,0,0)
- let distDir = fromFlagOrDefault ("." </> "dist") (configDistPref $ configFlags lbi)
- packageDbDir = distDir </> "package.conf.inplace"
- cd <- getCurrentDirectory
- -- putStrLn $ "*****************componentOptions':(cd,packageDbDir)=" ++ show (cd,packageDbDir)
- existsLocalPackageDb <- doesDirectoryExist packageDbDir
includeDirMap <- recursiveDepInfo lbi v distdir
-#else
- let existsLocalPackageDb = False
- packageDbDir = "." -- never used
#endif
componentsMap lbi v distdir $ \c clbi bi ->
@@ -526,11 +521,7 @@ componentOptions' (lbi, v, distdir) inplaceFlag flags rf f = do
#else
[] -> removeInplaceDeps v lbi pd clbi
#endif
- opts1 = componentGhcOptions normal lbi bi clbi' outdir
- opts = if existsLocalPackageDb
- then opts1 { ghcOptPackageDBs = ghcOptPackageDBs opts1
- <> [SpecificPackageDB packageDbDir] }
- else opts1
+ opts = componentGhcOptions normal lbi bi clbi' outdir
opts' = f opts
in rf lbi v $ nubPackageFlags $ opts' `mappend` adopts
@@ -576,9 +567,6 @@ removeInplaceDeps _v lbi pd clbi includeDirs = let
opts { ghcOptSourcePath = ghcOptSourcePath opts <> toNubListR extraIncludes
, ghcOptPackages = ghcOptPackages opts <> toNubListR extraDeps }
- (hasIdeps,clbi') = case needsBuild of
- NoBuildOutput -> removeInplace clbi
- ProduceBuildOutput -> (False, clbi)
libopts =
case (getLibraryClbi pd lbi,getExeClbi pd lbi) of
(Just (lib, libclbi),_) | hasIdeps ->
@@ -593,7 +581,16 @@ removeInplaceDeps _v lbi pd clbi includeDirs = let
in
cleanRecursiveOpts (CExe exe) exebi execlbi
_ -> mempty
- in (clbi', libopts)
+
+ distDir = fromFlagOrDefault ("." </> "dist") (configDistPref $ configFlags lbi)
+ packageDbDir = internalPackageDBPath lbi distDir
+ (hasIdeps,clbi') = case needsBuild of
+ NoBuildOutput -> removeInplace clbi
+ ProduceBuildOutput -> (False, clbi)
+ libopts' = case needsBuild of
+ NoBuildOutput -> libopts
+ ProduceBuildOutput -> mempty { ghcOptPackageDBs = [SpecificPackageDB packageDbDir] }
+ in (clbi', libopts')
#else
removeInplaceDeps :: Verbosity
-> LocalBuildInfo