Skip to content

Commit

Permalink
cabal haddock imply enable-documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
ulysses4ever committed Jul 4, 2022
1 parent 1da1893 commit 657e373
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 3 deletions.
5 changes: 3 additions & 2 deletions cabal-install/src/Distribution/Client/CmdHaddock.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import Distribution.Client.TargetProblem
import Distribution.Client.NixStyleOptions
( NixStyleFlags (..), nixStyleOptions, defaultNixStyleFlags )
import Distribution.Client.Setup
( GlobalFlags, ConfigFlags(..) )
( GlobalFlags, ConfigFlags(..), InstallFlags (..))
import Distribution.Simple.Setup
( HaddockFlags(..), fromFlagOrDefault, trueArg )
import Distribution.Simple.Command
Expand Down Expand Up @@ -141,7 +141,8 @@ haddockAction flags@NixStyleFlags {..} targetStrings globalFlags = do
runProjectPostBuildPhase verbosity baseCtx buildCtx' buildOutcomes
where
verbosity = fromFlagOrDefault normal (configVerbosity configFlags)
cliConfig = commandLineFlagsToProjectConfig globalFlags flags mempty -- ClientInstallFlags, not needed here
flags' = flags { installFlags = installFlags { installDocumentation = Flag True } }
cliConfig = commandLineFlagsToProjectConfig globalFlags flags' mempty -- ClientInstallFlags, not needed here

-- | This defines what a 'TargetSelector' means for the @haddock@ command.
-- It selects the 'AvailableTarget's that the 'TargetSelector' refers to,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
cabal-version: 2.4
name: B
version: 0.1.0.0
author: Artem Pelenitsyn
maintainer: a.pelenitsyn@gmail.com

library
exposed-modules: B
build-depends: base
, A
hs-source-dirs: .
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- | Module using external dependency and mentioning it in haddocks
module B (b) where

import A

-- | Use 'a'
b :: Int
b = a
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# cabal v2-update
Downloading the latest package list from test-local-repo
# cabal haddock
Resolving dependencies...
Build profile: -w ghc-<GHCVER> -O1
In order, the following will be built:
- A-0.1.0.0 (lib) (requires build)
- B-0.1.0.0 (lib) (first run)
Configuring library for A-0.1.0.0..
Preprocessing library for A-0.1.0.0..
Building library for A-0.1.0.0..
Preprocessing library for A-0.1.0.0..
Running Haddock on library for A-0.1.0.0..
Documentation created: dist/doc/html/A/index.html
Installing library in <PATH>
Configuring library for B-0.1.0.0..
Preprocessing library for B-0.1.0.0..
Running Haddock on library for B-0.1.0.0..
Documentation created: <ROOT>/cabal.dist/work/dist/build/<ARCH>/ghc-<GHCVER>/B-0.1.0.0/doc/html/B/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
packages: B
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import Test.Cabal.Prelude
-- Test that `cabal haddock` doesn't require explicit
-- `--enable-dependencies` to happily process links to external packages.
-- In this example package B depends on an external package A.
main = cabalTest . withRepo "repo" $
cabal "haddock" ["B"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cabal-version: 2.4
name: A
version: 0.1.0.0
author: Artem Pelenitsyn
maintainer: a.pelenitsyn@gmail.com

library
exposed-modules: A
build-depends: base
hs-source-dirs: .
default-language: Haskell2010
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module A (a) where

a :: Int
a = 42
4 changes: 4 additions & 0 deletions changelog.d/issue-7462
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
synopsis: `cabal haddock` now implies `--enable-documentation`
packages: cabal-install
issues: #7462
prs: #8259
3 changes: 2 additions & 1 deletion doc/cabal-project.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1324,11 +1324,12 @@ Haddock options
:default: False

Enables building of Haddock documentation.
Implied when calling ``cabal haddock``.

The command line variant of this flag is ``--enable-documentation``
and ``--disable-documentation``.

`documentation: true` does not imply
``documentation: true`` does not imply
:cfg-field:`haddock-all`,
:cfg-field:`haddock-benchmarks`,
:cfg-field:`haddock-executables`,
Expand Down

0 comments on commit 657e373

Please sign in to comment.