Split up LocalBuildInfo
The aim of this commit is to modularise LocalBuildInfo to better reflect implicit invariants. The top-level split data LocalBuildInfo = NewLocalBuildInfo { localBuildDescr :: LocalBuildDescr , localBuildConfig :: LocalBuildConfig } reflects which part of a LocalBuildInfo are set in stone by Cabal (the LocalBuildDescr), while LocalBuildConfig contains options that can be controlled/modified by the user in some way. The split data LocalBuildDescr = LocalBuildDescr { packageBuildDescr :: PackageBuildDescr , componentBuildDescr :: ComponentBuildDescr } reflects that some parts of the information determined at configuration time resides at the package level, while other pieces of information are pertinent to individual components. Finally the structure of LocalBuildConfig is aimed to reduce code duplication between the Cabal library and cabal-install.
Showing
- Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs 2 additions, 2 deletionsCabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs
- Cabal/Cabal.cabal 1 addition, 0 deletionsCabal/Cabal.cabal
- Cabal/src/Distribution/Simple/BuildTarget.hs 67 additions, 61 deletionsCabal/src/Distribution/Simple/BuildTarget.hs
- Cabal/src/Distribution/Simple/Configure.hs 3 additions, 7 deletionsCabal/src/Distribution/Simple/Configure.hs
- Cabal/src/Distribution/Simple/LocalBuildInfo.hs 140 additions, 115 deletionsCabal/src/Distribution/Simple/LocalBuildInfo.hs
- Cabal/src/Distribution/Simple/Test/ExeV10.hs 8 additions, 0 deletionsCabal/src/Distribution/Simple/Test/ExeV10.hs
- Cabal/src/Distribution/Types/LocalBuildConfig.hs 220 additions, 0 deletionsCabal/src/Distribution/Types/LocalBuildConfig.hs
- Cabal/src/Distribution/Types/LocalBuildInfo.hs 225 additions, 126 deletionsCabal/src/Distribution/Types/LocalBuildInfo.hs
- cabal-install/src/Distribution/Client/Run.hs 1 addition, 0 deletionscabal-install/src/Distribution/Client/Run.hs
Loading
Please register or sign in to comment