Do not use tmp dirs for Haddock, add --haddock-version-cpp, and more
Haddock no longer writes compilation files by default, so we do not need to pass tmp dirs for `-hidir`, `-stubdir`, and `-odir` via `--optghc`. Indeed, we do not *want* to do so, since it results in recompilation for every invocation of Haddock via Cabal. This commit stops this from happening for haddock versions >= 2.28 (when Hi Haddock was introduced). This commit also stops the default definition of the `__HADDOCK_VERSION__` macro when invoking GHC through haddock. Since a very limited set of users may still depend on this macro, we introduce the `--haddock-version-cpp` flag and `haddock-version-cpp:` cabal.project field, which enable the definition of the `__HADDOCK_VERSION__` macro when invoking GHC through Haddock. This will almost guarantee recompilation during documentation generation due to the macro definition. This commit also renames the `--haddock-lib` flag to `--haddock-resources-dir` (and `haddock-lib:` cabal.project field to `haddock-resources-dir:`), and adds this flag to the users guide since it was missing an entry. This also allows us to add this field to `cabal-install:test:integration-tests2`, since it is no longer ambiguous with the `--lib` flag. This commit also causes `documentation: true` or `--enable-documentation` to imply `-haddock` for GHC. Also, since Haddock >= 2.29 is renaming `--lib` to `--resources-dir`, this commit switches the flag provided to Haddock using a backwards compatible condition based on the Haddock version. Adds a changelog entry.
Showing
- .gitignore 3 additions, 0 deletions.gitignore
- Cabal/src/Distribution/Simple/Haddock.hs 90 additions, 51 deletionsCabal/src/Distribution/Simple/Haddock.hs
- Cabal/src/Distribution/Simple/Setup/Haddock.hs 28 additions, 10 deletionsCabal/src/Distribution/Simple/Setup/Haddock.hs
- cabal-install/src/Distribution/Client/CmdHaddockProject.hs 2 additions, 1 deletioncabal-install/src/Distribution/Client/CmdHaddockProject.hs
- cabal-install/src/Distribution/Client/Config.hs 2 additions, 1 deletioncabal-install/src/Distribution/Client/Config.hs
- cabal-install/src/Distribution/Client/PackageHash.hs 4 additions, 2 deletionscabal-install/src/Distribution/Client/PackageHash.hs
- cabal-install/src/Distribution/Client/ProjectConfig/Legacy.hs 6 additions, 3 deletions...l-install/src/Distribution/Client/ProjectConfig/Legacy.hs
- cabal-install/src/Distribution/Client/ProjectConfig/Types.hs 2 additions, 1 deletioncabal-install/src/Distribution/Client/ProjectConfig/Types.hs
- cabal-install/src/Distribution/Client/ProjectPlanning.hs 14 additions, 4 deletionscabal-install/src/Distribution/Client/ProjectPlanning.hs
- cabal-install/src/Distribution/Client/ProjectPlanning/Types.hs 2 additions, 1 deletion...-install/src/Distribution/Client/ProjectPlanning/Types.hs
- cabal-install/src/Distribution/Client/Setup.hs 2 additions, 1 deletioncabal-install/src/Distribution/Client/Setup.hs
- cabal-install/tests/IntegrationTests2.hs 2 additions, 0 deletionscabal-install/tests/IntegrationTests2.hs
- cabal-install/tests/UnitTests/Distribution/Client/ProjectConfig.hs 7 additions, 2 deletions...tall/tests/UnitTests/Distribution/Client/ProjectConfig.hs
- cabal-testsuite/PackageTests/NewHaddock/Fails/cabal.out 2 additions, 1 deletioncabal-testsuite/PackageTests/NewHaddock/Fails/cabal.out
- changelog.d/pr-9177 28 additions, 0 deletionschangelog.d/pr-9177
- doc/cabal-project-description-file.rst 19 additions, 0 deletionsdoc/cabal-project-description-file.rst
- test/IntegrationTests2/config/default-config 4 additions, 3 deletionstest/IntegrationTests2/config/default-config
- test/IntegrationTests2/nix-config/default-config 4 additions, 3 deletionstest/IntegrationTests2/nix-config/default-config
- tests/IntegrationTests2/config/default-config 10 additions, 7 deletionstests/IntegrationTests2/config/default-config
- tests/IntegrationTests2/nix-config/default-config 4 additions, 3 deletionstests/IntegrationTests2/nix-config/default-config
Loading
Please register or sign in to comment