Skip to content

Commit 214acd8

Browse files
authored
Merge pull request #9966 from sheaf/haddock-tmpFiles
Haddock: use buildSettingKeepTempFiles
2 parents fd8020f + e35c0dc commit 214acd8

File tree

6 files changed

+80
-34
lines changed

6 files changed

+80
-34
lines changed

cabal-install/src/Distribution/Client/ProjectBuilding/UnpackedPackage.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ buildAndRegisterUnpackedPackage
168168
verbosity
169169
distDirLayout@DistDirLayout{distTempDirectory}
170170
maybe_semaphore
171-
BuildTimeSettings{buildSettingNumJobs}
171+
buildTimeSettings@BuildTimeSettings{buildSettingNumJobs}
172172
registerLock
173173
cacheLock
174174
pkgshared@ElaboratedSharedConfig
@@ -329,6 +329,7 @@ buildAndRegisterUnpackedPackage
329329
setupHsHaddockFlags
330330
pkg
331331
pkgshared
332+
buildTimeSettings
332333
(commonFlags v)
333334
haddockArgs v =
334335
flip filterHaddockArgs v $

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

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4101,41 +4101,46 @@ setupHsRegisterFlags
41014101
setupHsHaddockFlags
41024102
:: ElaboratedConfiguredPackage
41034103
-> ElaboratedSharedConfig
4104+
-> BuildTimeSettings
41044105
-> Cabal.CommonSetupFlags
41054106
-> Cabal.HaddockFlags
4106-
setupHsHaddockFlags (ElaboratedConfiguredPackage{..}) (ElaboratedSharedConfig{..}) common =
4107-
Cabal.HaddockFlags
4108-
{ haddockCommonFlags = common
4109-
, haddockProgramPaths =
4110-
case lookupProgram haddockProgram pkgConfigCompilerProgs of
4111-
Nothing -> mempty
4112-
Just prg ->
4113-
[
4114-
( programName haddockProgram
4115-
, locationPath (programLocation prg)
4116-
)
4117-
]
4118-
, haddockProgramArgs = mempty -- unused, set at configure time
4119-
, haddockHoogle = toFlag elabHaddockHoogle
4120-
, haddockHtml = toFlag elabHaddockHtml
4121-
, haddockHtmlLocation = maybe mempty toFlag elabHaddockHtmlLocation
4122-
, haddockForHackage = toFlag elabHaddockForHackage
4123-
, haddockForeignLibs = toFlag elabHaddockForeignLibs
4124-
, haddockExecutables = toFlag elabHaddockExecutables
4125-
, haddockTestSuites = toFlag elabHaddockTestSuites
4126-
, haddockBenchmarks = toFlag elabHaddockBenchmarks
4127-
, haddockInternal = toFlag elabHaddockInternal
4128-
, haddockCss = maybe mempty toFlag elabHaddockCss
4129-
, haddockLinkedSource = toFlag elabHaddockLinkedSource
4130-
, haddockQuickJump = toFlag elabHaddockQuickJump
4131-
, haddockHscolourCss = maybe mempty toFlag elabHaddockHscolourCss
4132-
, haddockContents = maybe mempty toFlag elabHaddockContents
4133-
, haddockKeepTempFiles = mempty -- TODO: from build settings
4134-
, haddockIndex = maybe mempty toFlag elabHaddockIndex
4135-
, haddockBaseUrl = maybe mempty toFlag elabHaddockBaseUrl
4136-
, haddockLib = maybe mempty toFlag elabHaddockLib
4137-
, haddockOutputDir = maybe mempty toFlag elabHaddockOutputDir
4138-
}
4107+
setupHsHaddockFlags
4108+
(ElaboratedConfiguredPackage{..})
4109+
(ElaboratedSharedConfig{..})
4110+
(BuildTimeSettings{buildSettingKeepTempFiles = keepTmpFiles})
4111+
common =
4112+
Cabal.HaddockFlags
4113+
{ haddockCommonFlags = common
4114+
, haddockProgramPaths =
4115+
case lookupProgram haddockProgram pkgConfigCompilerProgs of
4116+
Nothing -> mempty
4117+
Just prg ->
4118+
[
4119+
( programName haddockProgram
4120+
, locationPath (programLocation prg)
4121+
)
4122+
]
4123+
, haddockProgramArgs = mempty -- unused, set at configure time
4124+
, haddockHoogle = toFlag elabHaddockHoogle
4125+
, haddockHtml = toFlag elabHaddockHtml
4126+
, haddockHtmlLocation = maybe mempty toFlag elabHaddockHtmlLocation
4127+
, haddockForHackage = toFlag elabHaddockForHackage
4128+
, haddockForeignLibs = toFlag elabHaddockForeignLibs
4129+
, haddockExecutables = toFlag elabHaddockExecutables
4130+
, haddockTestSuites = toFlag elabHaddockTestSuites
4131+
, haddockBenchmarks = toFlag elabHaddockBenchmarks
4132+
, haddockInternal = toFlag elabHaddockInternal
4133+
, haddockCss = maybe mempty toFlag elabHaddockCss
4134+
, haddockLinkedSource = toFlag elabHaddockLinkedSource
4135+
, haddockQuickJump = toFlag elabHaddockQuickJump
4136+
, haddockHscolourCss = maybe mempty toFlag elabHaddockHscolourCss
4137+
, haddockContents = maybe mempty toFlag elabHaddockContents
4138+
, haddockKeepTempFiles = toFlag keepTmpFiles
4139+
, haddockIndex = maybe mempty toFlag elabHaddockIndex
4140+
, haddockBaseUrl = maybe mempty toFlag elabHaddockBaseUrl
4141+
, haddockLib = maybe mempty toFlag elabHaddockLib
4142+
, haddockOutputDir = maybe mempty toFlag elabHaddockOutputDir
4143+
}
41394144

41404145
setupHsHaddockArgs :: ElaboratedConfiguredPackage -> [String]
41414146
-- TODO: Does the issue #3335 affects test as well
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module Simple where
2+
3+
-- | For hiding needles.
4+
data Haystack = Haystack
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
packages: .
2+
3+
haddock-keep-temp-files: true
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{-# LANGUAGE LambdaCase #-}
2+
import Test.Cabal.Prelude
3+
import Distribution.Verbosity
4+
import Distribution.Simple.Glob
5+
import Distribution.Simple.Glob.Internal
6+
7+
-- Test that "cabal haddock" preserves temporary files
8+
-- We use haddock-keep-temp-file: True in the cabal.project.
9+
main = cabalTest $ recordMode DoNotRecord $ do
10+
skipIfWindows
11+
12+
cabal "haddock" []
13+
14+
cwd <- fmap testCurrentDir getTestEnv
15+
16+
(globMatches <$> liftIO (runDirFileGlob silent Nothing cwd (GlobDirRecursive [WildCard, Literal "response", WildCard, Literal "txt"]))) >>= \case
17+
[] -> error "Expecting a response file to exist"
18+
(m:_) ->
19+
-- Assert the matched response file is not empty.
20+
assertFileDoesContain (cwd </> m) "Simple.hs"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
cabal-version: 3.0
2+
name: HaddockKeepsTmps
3+
version: 0.1
4+
license: BSD-3-Clause
5+
author: Rodrigo Mesquita
6+
stability: stable
7+
category: PackageTests
8+
build-type: Simple
9+
10+
library
11+
default-language: Haskell2010
12+
exposed-modules: Simple
13+
build-depends: base

0 commit comments

Comments
 (0)