Skip to content

Commit bdecafb

Browse files
committed
cabal haddock imply enable-documentation
1 parent 1da1893 commit bdecafb

File tree

9 files changed

+66
-3
lines changed

9 files changed

+66
-3
lines changed

cabal-install/src/Distribution/Client/CmdHaddock.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import Distribution.Client.TargetProblem
2424
import Distribution.Client.NixStyleOptions
2525
( NixStyleFlags (..), nixStyleOptions, defaultNixStyleFlags )
2626
import Distribution.Client.Setup
27-
( GlobalFlags, ConfigFlags(..) )
27+
( GlobalFlags, ConfigFlags(..), InstallFlags (..))
2828
import Distribution.Simple.Setup
2929
( HaddockFlags(..), fromFlagOrDefault, trueArg )
3030
import Distribution.Simple.Command
@@ -141,7 +141,8 @@ haddockAction flags@NixStyleFlags {..} targetStrings globalFlags = do
141141
runProjectPostBuildPhase verbosity baseCtx buildCtx' buildOutcomes
142142
where
143143
verbosity = fromFlagOrDefault normal (configVerbosity configFlags)
144-
cliConfig = commandLineFlagsToProjectConfig globalFlags flags mempty -- ClientInstallFlags, not needed here
144+
flags' = flags { installFlags = installFlags { installDocumentation = Flag True } }
145+
cliConfig = commandLineFlagsToProjectConfig globalFlags flags' mempty -- ClientInstallFlags, not needed here
145146

146147
-- | This defines what a 'TargetSelector' means for the @haddock@ command.
147148
-- It selects the 'AvailableTarget's that the 'TargetSelector' refers to,
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cabal-version: 2.4
2+
name: B
3+
version: 0.1.0.0
4+
author: Artem Pelenitsyn
5+
maintainer: [email protected]
6+
7+
library
8+
exposed-modules: B
9+
build-depends: base ^>=4.15.1.0
10+
, A
11+
hs-source-dirs: .
12+
default-language: Haskell2010
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-- | Module using external dependency and mentioning it in haddocks
2+
module B (b) where
3+
4+
import A
5+
6+
-- | Use 'a'
7+
b :: Int
8+
b = a
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# cabal v2-update
2+
Downloading the latest package list from test-local-repo
3+
# cabal haddock
4+
Resolving dependencies...
5+
Build profile: -w ghc-<GHCVER> -O1
6+
In order, the following will be built:
7+
- A-0.1.0.0 (lib) (requires build)
8+
- B-0.1.0.0 (lib) (first run)
9+
Configuring library for A-0.1.0.0..
10+
Preprocessing library for A-0.1.0.0..
11+
Building library for A-0.1.0.0..
12+
Preprocessing library for A-0.1.0.0..
13+
Running Haddock on library for A-0.1.0.0..
14+
Documentation created: dist/doc/html/A/index.html
15+
Installing library in <PATH>
16+
Configuring library for B-0.1.0.0..
17+
Preprocessing library for B-0.1.0.0..
18+
Running Haddock on library for B-0.1.0.0..
19+
Documentation created: <ROOT>/cabal.dist/work/dist/build/<ARCH>/ghc-<GHCVER>/B-0.1.0.0/doc/html/B/index.html
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
packages: B
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import Test.Cabal.Prelude
2+
-- Test that `cabal haddock` doesn't require explicit
3+
-- `--enable-dependencies` to happily process links to external packages.
4+
-- In this example package B depends on an external package A.
5+
main = cabalTest . withRepo "repo" $
6+
cabal "haddock" ["B"]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cabal-version: 2.4
2+
name: A
3+
version: 0.1.0.0
4+
author: Artem Pelenitsyn
5+
maintainer: [email protected]
6+
7+
library
8+
exposed-modules: A
9+
build-depends: base ^>=4.15.1.0
10+
hs-source-dirs: .
11+
default-language: Haskell2010
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module A (a) where
2+
3+
a :: Int
4+
a = 42

doc/cabal-project.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1324,11 +1324,12 @@ Haddock options
13241324
:default: False
13251325

13261326
Enables building of Haddock documentation.
1327+
Implied when calling ``cabal haddock``.
13271328

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

1331-
`documentation: true` does not imply
1332+
``documentation: true`` does not imply
13321333
:cfg-field:`haddock-all`,
13331334
:cfg-field:`haddock-benchmarks`,
13341335
:cfg-field:`haddock-executables`,

0 commit comments

Comments
 (0)