You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 3, 2022. It is now read-only.
Allow a GhcInstallAction to skip directory enumeration
The Windows build is different from the other builds in a few
ways, one of which is very important for this commit:
* Windows installs HP and GHC in a single directory, so
creating dependencies too early on the contents of the
target GHC directory contents will cause Shake to complain
that the directory contents have changed since making a
dependency on them (which they have, since later, the
HP-built packages need to come into that set of
directories). So, after building the ghcVirtualTarget, we
do not want the directory contents accounted for as
dependencies just yet (it is done later for the entire
target directory).
In the osGhcTargetInstall function in the Windows builds, the
directory is not completed at the point this action is used,
so we cannot have the Shake system enumerating this directory
for dependencies too soon. So we must make its
osGhcTargetInstall no longer returns a directory, which
prevents the vTarget code in Dirs.hs from making dependencies
of the directory contents too soon.
This change is part of a larger change but it is separated
here as this isolates any effects on the common code. The
Windows-specific changes will be in a separate commit for
bookkeeping reasons. The GhcInstallAction type is only used
internally to GhcDist and for the Windows case where it is
the only build (currently) to use the GhcInstallCustom
variant of the GhcInstall type.
* hptool/src/OS/Win.hs
* With this change to GhcInstallAction, the
osGhcTargetInstall function can now elide the
(incomplete) FilePath.
* hptool/src/Types.hs
* Allow the FilePath returned by a GhcInstallAction, to be
optional.
* hptool/src/OS/Win/WinRules.hs
* Track GhcInstallAction change
* hptool/src/GhcDist.hs
* Allow the handling of ghcVirtualTarget to accomodate the
case of not providing a FilePath, which will prevent the
vdir code from creating dependencies on the contents.
0 commit comments