Introduce SetupHooks
This commit introduces a new build-type, Hooks. A package using this build type should provide a SetupHooks.hs module which exports a value `setupHooks :: SetupHooks`. This is intended to replace the Custom setup type. This allows Cabal to have finer-grained information about the build, instead of having an opaque Setup executable to invoke. Tests include: - error when returning an invalid component diff in a per-component pre-configure hook - error when declaring pre-build rules whose dependency graph contains cycles - error when we cannot find a dependency of a pre-build rule - warning when there are pre-build rules that are declared but never demanded - correctness tests for SetupHooks, e.g. that pre-build rules are run in dependency order (see the `SetupHooksRuleOrdering` test)
Showing
- Cabal-described/src/Distribution/Described.hs 1 addition, 1 deletionCabal-described/src/Distribution/Described.hs
- Cabal-hooks/Cabal-hooks.cabal 69 additions, 0 deletionsCabal-hooks/Cabal-hooks.cabal
- Cabal-hooks/LICENSE 34 additions, 0 deletionsCabal-hooks/LICENSE
- Cabal-hooks/changelog.md 6 additions, 0 deletionsCabal-hooks/changelog.md
- Cabal-hooks/readme.md 64 additions, 0 deletionsCabal-hooks/readme.md
- Cabal-hooks/src/Distribution/Simple/SetupHooks.hs 68 additions, 49 deletionsCabal-hooks/src/Distribution/Simple/SetupHooks.hs
- Cabal-syntax/src/Distribution/CabalSpecVersion.hs 5 additions, 1 deletionCabal-syntax/src/Distribution/CabalSpecVersion.hs
- Cabal-syntax/src/Distribution/PackageDescription/Parsec.hs 5 additions, 1 deletionCabal-syntax/src/Distribution/PackageDescription/Parsec.hs
- Cabal-syntax/src/Distribution/SPDX/LicenseListVersion.hs 1 addition, 0 deletionsCabal-syntax/src/Distribution/SPDX/LicenseListVersion.hs
- Cabal-syntax/src/Distribution/Types/BuildType.hs 7 additions, 1 deletionCabal-syntax/src/Distribution/Types/BuildType.hs
- Cabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs 4 additions, 4 deletionsCabal-tests/tests/UnitTests/Distribution/Utils/Structured.hs
- Cabal/Cabal.cabal 3 additions, 0 deletionsCabal/Cabal.cabal
- Cabal/src/Distribution/PackageDescription/Check.hs 1 addition, 1 deletionCabal/src/Distribution/PackageDescription/Check.hs
- Cabal/src/Distribution/Simple.hs 137 additions, 12 deletionsCabal/src/Distribution/Simple.hs
- Cabal/src/Distribution/Simple/Bench.hs 7 additions, 4 deletionsCabal/src/Distribution/Simple/Bench.hs
- Cabal/src/Distribution/Simple/Build.hs 215 additions, 132 deletionsCabal/src/Distribution/Simple/Build.hs
- Cabal/src/Distribution/Simple/Configure.hs 105 additions, 10 deletionsCabal/src/Distribution/Simple/Configure.hs
- Cabal/src/Distribution/Simple/Errors.hs 11 additions, 7 deletionsCabal/src/Distribution/Simple/Errors.hs
- Cabal/src/Distribution/Simple/Glob.hs 1 addition, 1 deletionCabal/src/Distribution/Simple/Glob.hs
- Cabal/src/Distribution/Simple/Haddock.hs 353 additions, 273 deletionsCabal/src/Distribution/Simple/Haddock.hs
Loading
Please register or sign in to comment