@@ -303,7 +303,7 @@ rebuildTargetsDryRun distDirLayout@DistDirLayout{..} = \installPlan -> do
303
303
return (BuildStatusUpToDate buildSuccess)
304
304
where
305
305
packageFileMonitor =
306
- newPackageFileMonitor distDirLayout (packageId pkg)
306
+ newPackageFileMonitor distDirLayout (installedUnitId pkg)
307
307
308
308
309
309
-- | A specialised traversal over the packages in an install plan.
@@ -393,22 +393,22 @@ data PackageFileMonitor = PackageFileMonitor {
393
393
--
394
394
type BuildSuccessMisc = (DocsResult , TestsResult )
395
395
396
- newPackageFileMonitor :: DistDirLayout -> PackageId -> PackageFileMonitor
397
- newPackageFileMonitor DistDirLayout {distPackageCacheFile} pkgid =
396
+ newPackageFileMonitor :: DistDirLayout -> UnitId -> PackageFileMonitor
397
+ newPackageFileMonitor DistDirLayout {distPackageCacheFile} ipkgid =
398
398
PackageFileMonitor {
399
399
pkgFileMonitorConfig =
400
- newFileMonitor (distPackageCacheFile pkgid " config" ),
400
+ newFileMonitor (distPackageCacheFile ipkgid " config" ),
401
401
402
402
pkgFileMonitorBuild =
403
403
FileMonitor {
404
- fileMonitorCacheFile = distPackageCacheFile pkgid " build" ,
404
+ fileMonitorCacheFile = distPackageCacheFile ipkgid " build" ,
405
405
fileMonitorKeyValid = \ componentsToBuild componentsAlreadyBuilt ->
406
406
componentsToBuild `Set.isSubsetOf` componentsAlreadyBuilt,
407
407
fileMonitorCheckIfOnlyValueChanged = True
408
408
},
409
409
410
410
pkgFileMonitorReg =
411
- newFileMonitor (distPackageCacheFile pkgid " registration" )
411
+ newFileMonitor (distPackageCacheFile ipkgid " registration" )
412
412
}
413
413
414
414
-- | Helper function for 'checkPackageFileMonitorChanged',
@@ -686,7 +686,7 @@ rebuildTarget verbosity
686
686
unpackTarballPhase tarball =
687
687
withTarballLocalDirectory
688
688
verbosity distDirLayout tarball
689
- (packageId pkg) (pkgBuildStyle pkg)
689
+ (packageId pkg) (installedPackageId pkg) ( pkgBuildStyle pkg)
690
690
(pkgDescriptionOverride pkg) $
691
691
692
692
case pkgBuildStyle pkg of
@@ -704,7 +704,7 @@ rebuildTarget verbosity
704
704
705
705
buildInplace buildStatus srcdir builddir
706
706
where
707
- builddir = distBuildDirectory (packageId pkg)
707
+ builddir = distBuildDirectory (installedUnitId pkg)
708
708
709
709
buildAndInstall srcdir builddir =
710
710
buildAndInstallUnpackedPackage
@@ -790,19 +790,22 @@ downloadedSourceLocation pkgloc =
790
790
791
791
792
792
-- | Ensure that the package is unpacked in an appropriate directory, either
793
- -- a temporary one or a persistent one under the shared dist directory.
793
+ -- a temporary one or a persistent one under the shared dist directory.
794
794
--
795
795
withTarballLocalDirectory
796
796
:: Verbosity
797
797
-> DistDirLayout
798
798
-> FilePath
799
799
-> PackageId
800
+ -> UnitId
800
801
-> BuildStyle
801
802
-> Maybe CabalFileText
802
- -> (FilePath -> FilePath -> IO a )
803
+ -> (FilePath -> -- Source directory
804
+ FilePath -> -- Build directory
805
+ IO a )
803
806
-> IO a
804
807
withTarballLocalDirectory verbosity distDirLayout@ DistDirLayout {.. }
805
- tarball pkgid buildstyle pkgTextOverride
808
+ tarball pkgid ipkgid buildstyle pkgTextOverride
806
809
buildPkg =
807
810
case buildstyle of
808
811
-- In this case we make a temp dir, unpack the tarball to there and
@@ -822,15 +825,15 @@ withTarballLocalDirectory verbosity distDirLayout@DistDirLayout{..}
822
825
BuildInplaceOnly -> do
823
826
let srcrootdir = distUnpackedSrcRootDirectory
824
827
srcdir = distUnpackedSrcDirectory pkgid
825
- builddir = distBuildDirectory pkgid
828
+ builddir = distBuildDirectory ipkgid
826
829
-- TODO: [nice to have] use a proper file monitor rather than this dir exists test
827
830
exists <- doesDirectoryExist srcdir
828
831
unless exists $ do
829
832
createDirectoryIfMissingVerbose verbosity False srcrootdir
830
833
unpackPackageTarball verbosity tarball srcrootdir
831
834
pkgid pkgTextOverride
832
835
moveTarballShippedDistDirectory verbosity distDirLayout
833
- srcrootdir pkgid
836
+ srcrootdir pkgid ipkgid
834
837
buildPkg srcdir builddir
835
838
836
839
@@ -876,9 +879,9 @@ unpackPackageTarball verbosity tarball parentdir pkgid pkgTextOverride =
876
879
-- system, though we'll still need to keep this hack for older packages.
877
880
--
878
881
moveTarballShippedDistDirectory :: Verbosity -> DistDirLayout
879
- -> FilePath -> PackageId -> IO ()
882
+ -> FilePath -> PackageId -> UnitId -> IO ()
880
883
moveTarballShippedDistDirectory verbosity DistDirLayout {distBuildDirectory}
881
- parentdir pkgid = do
884
+ parentdir pkgid uid = do
882
885
distDirExists <- doesDirectoryExist tarballDistDir
883
886
when distDirExists $ do
884
887
debug verbosity $ " Moving '" ++ tarballDistDir ++ " ' to '"
@@ -887,7 +890,7 @@ moveTarballShippedDistDirectory verbosity DistDirLayout{distBuildDirectory}
887
890
renameDirectory tarballDistDir targetDistDir
888
891
where
889
892
tarballDistDir = parentdir </> display pkgid </> " dist"
890
- targetDistDir = distBuildDirectory pkgid
893
+ targetDistDir = distBuildDirectory uid
891
894
892
895
893
896
buildAndInstallUnpackedPackage :: Verbosity
@@ -1065,8 +1068,9 @@ buildInplaceUnpackedPackage verbosity
1065
1068
1066
1069
-- TODO: [code cleanup] there is duplication between the distdirlayout and the builddir here
1067
1070
-- builddir is not enough, we also need the per-package cachedir
1071
+ let uid = installedUnitId pkg
1068
1072
createDirectoryIfMissingVerbose verbosity False builddir
1069
- createDirectoryIfMissingVerbose verbosity False (distPackageCacheDirectory pkgid )
1073
+ createDirectoryIfMissingVerbose verbosity False (distPackageCacheDirectory uid )
1070
1074
1071
1075
-- Configure phase
1072
1076
--
@@ -1132,12 +1136,11 @@ buildInplaceUnpackedPackage verbosity
1132
1136
return (BuildOk docsResult testsResult mipkg)
1133
1137
1134
1138
where
1135
- pkgid = packageId rpkg
1136
1139
ipkgid = installedPackageId rpkg
1137
1140
1138
1141
isParallelBuild = buildSettingNumJobs >= 2
1139
1142
1140
- packageFileMonitor = newPackageFileMonitor distDirLayout pkgid
1143
+ packageFileMonitor = newPackageFileMonitor distDirLayout ipkgid
1141
1144
1142
1145
whenReConfigure action = case buildStatus of
1143
1146
BuildStatusConfigure _ -> action
0 commit comments