Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bring back old types of {hscolour,haddock}Pref and haddockForHackage. #4146

Merged
merged 2 commits into from
Dec 2, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cabal/Cabal.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Cabal
version: 1.24.1.0
version: 1.24.2.0
copyright: 2003-2006, Isaac Jones
2005-2011, Duncan Coutts
license: BSD3
Expand Down
16 changes: 11 additions & 5 deletions Cabal/Distribution/Simple/BuildPaths.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

module Distribution.Simple.BuildPaths (
defaultDistPref, srcPref,
haddockDirName, hscolourPref, haddockPref,
haddockDirName,
hscolourPref, hscolourPref', haddockPref, haddockPref',
autogenModulesDir,

autogenModuleName,
Expand Down Expand Up @@ -48,8 +49,13 @@ import System.FilePath ((</>), (<.>))
srcPref :: FilePath -> FilePath
srcPref distPref = distPref </> "src"

hscolourPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
hscolourPref = haddockPref
-- Backwards compat, see #4123.
haddockPref, hscolourPref :: FilePath -> PackageDescription -> FilePath
haddockPref = haddockPref' ForDevelopment
hscolourPref = haddockPref' ForDevelopment

hscolourPref' :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
hscolourPref' = haddockPref'

-- | This is the name of the directory in which the generated haddocks
-- should be stored. It does not include the @<dist>/doc/html@ prefix.
Expand All @@ -58,8 +64,8 @@ haddockDirName ForDevelopment = display . packageName
haddockDirName ForHackage = (++ "-docs") . display . packageId

-- | The directory to which generated haddock documentation should be written.
haddockPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
haddockPref haddockTarget distPref pkg_descr
haddockPref' :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
haddockPref' haddockTarget distPref pkg_descr
= distPref </> "doc" </> "html" </> haddockDirName haddockTarget pkg_descr

-- |The directory in which we put auto-generated modules
Expand Down
8 changes: 4 additions & 4 deletions Cabal/Distribution/Simple/Haddock.hs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ haddock pkg_descr lbi suffixes flags' = do
htmlTemplate = fmap toPathTemplate . flagToMaybe . haddockHtmlLocation
$ flags
haddockTarget =
fromFlagOrDefault ForDevelopment (haddockForHackage flags')
haddockTargetFromFlag (haddockForHackage flags')

setupMessage verbosity "Running Haddock for" (packageId pkg_descr)
(confHaddock, version, _) <-
Expand Down Expand Up @@ -673,15 +673,15 @@ hscolour' onNoHsColour haddockTarget pkg_descr lbi suffixes flags =
go hscolourProg = do
setupMessage verbosity "Running hscolour for" (packageId pkg_descr)
createDirectoryIfMissingVerbose verbosity True $
hscolourPref haddockTarget distPref pkg_descr
hscolourPref' haddockTarget distPref pkg_descr

let pre c = preprocessComponent pkg_descr c lbi False verbosity suffixes
withAllComponentsInBuildOrder pkg_descr lbi $ \comp _ -> do
pre comp
let
doExe com = case (compToExe com) of
Just exe -> do
let outputDir = hscolourPref haddockTarget distPref pkg_descr
let outputDir = hscolourPref' haddockTarget distPref pkg_descr
</> exeName exe </> "src"
runHsColour hscolourProg outputDir =<< getExeSourceFiles lbi exe
Nothing -> do
Expand All @@ -690,7 +690,7 @@ hscolour' onNoHsColour haddockTarget pkg_descr lbi suffixes flags =
return ()
case comp of
CLib lib -> do
let outputDir = hscolourPref haddockTarget distPref pkg_descr </> "src"
let outputDir = hscolourPref' haddockTarget distPref pkg_descr </> "src"
runHsColour hscolourProg outputDir =<< getLibSourceFiles lbi lib
CExe _ -> when (fromFlag (hscolourExecutables flags)) $ doExe comp
CTest _ -> when (fromFlag (hscolourTestSuites flags)) $ doExe comp
Expand Down
12 changes: 6 additions & 6 deletions Cabal/Distribution/Simple/Install.hs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ module Distribution.Simple.Install (
import Distribution.PackageDescription
import Distribution.Package (Package(..))
import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.BuildPaths (haddockName, haddockPref)
import Distribution.Simple.BuildPaths (haddockName, haddockPref')
import Distribution.Simple.Utils
( createDirectoryIfMissingVerbose
, installDirectoryContents, installOrdinaryFile, isInSearchPath
Expand Down Expand Up @@ -75,23 +75,23 @@ install pkg_descr lbi flags = do

unless (hasLibs pkg_descr || hasExes pkg_descr) $
die "No executables and no library found. Nothing to do."
docExists <- doesDirectoryExist $ haddockPref ForDevelopment distPref pkg_descr
info verbosity ("directory " ++ haddockPref ForDevelopment distPref pkg_descr ++
docExists <- doesDirectoryExist $ haddockPref' ForDevelopment distPref pkg_descr
info verbosity ("directory " ++ haddockPref' ForDevelopment distPref pkg_descr ++
" does exist: " ++ show docExists)

installDataFiles verbosity pkg_descr dataPref

when docExists $ do
createDirectoryIfMissingVerbose verbosity True htmlPref
installDirectoryContents verbosity
(haddockPref ForDevelopment distPref pkg_descr) htmlPref
(haddockPref' ForDevelopment distPref pkg_descr) htmlPref
-- setPermissionsRecursive [Read] htmlPref
-- The haddock interface file actually already got installed
-- in the recursive copy, but now we install it where we actually
-- want it to be (normally the same place). We could remove the
-- copy in htmlPref first.
let haddockInterfaceFileSrc = haddockPref ForDevelopment distPref pkg_descr
</> haddockName pkg_descr
let haddockInterfaceFileSrc = haddockPref' ForDevelopment distPref pkg_descr
</> haddockName pkg_descr
haddockInterfaceFileDest = interfacePref </> haddockName pkg_descr
-- We only generate the haddock interface file for libs, So if the
-- package consists only of executables there will not be one:
Expand Down
14 changes: 10 additions & 4 deletions Cabal/Distribution/Simple/Setup.hs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ module Distribution.Simple.Setup (
configAbsolutePaths, readPackageDbList, showPackageDbList,
CopyFlags(..), emptyCopyFlags, defaultCopyFlags, copyCommand,
InstallFlags(..), emptyInstallFlags, defaultInstallFlags, installCommand,
HaddockTarget(..),
HaddockTarget(..), haddockTargetFromFlag,
HaddockFlags(..), emptyHaddockFlags, defaultHaddockFlags, haddockCommand,
HscolourFlags(..), emptyHscolourFlags, defaultHscolourFlags, hscolourCommand,
BuildFlags(..), emptyBuildFlags, defaultBuildFlags, buildCommand,
Expand Down Expand Up @@ -1229,13 +1229,19 @@ hscolourCommand = CommandUI
-- documentation in @<dist>/doc/html/<package id>-docs@.
data HaddockTarget = ForHackage | ForDevelopment deriving (Eq, Show, Generic)

-- | Convert '--for-hackage' to 'HaddockTarget'.
haddockTargetFromFlag :: Flag Bool -> HaddockTarget
haddockTargetFromFlag NoFlag = ForDevelopment
haddockTargetFromFlag (Flag False) = ForDevelopment
haddockTargetFromFlag (Flag True) = ForHackage

data HaddockFlags = HaddockFlags {
haddockProgramPaths :: [(String, FilePath)],
haddockProgramArgs :: [(String, [String])],
haddockHoogle :: Flag Bool,
haddockHtml :: Flag Bool,
haddockHtmlLocation :: Flag String,
haddockForHackage :: Flag HaddockTarget,
haddockForHackage :: Flag Bool,
haddockExecutables :: Flag Bool,
haddockTestSuites :: Flag Bool,
haddockBenchmarks :: Flag Bool,
Expand All @@ -1257,7 +1263,7 @@ defaultHaddockFlags = HaddockFlags {
haddockHoogle = Flag False,
haddockHtml = Flag False,
haddockHtmlLocation = NoFlag,
haddockForHackage = Flag ForDevelopment,
haddockForHackage = Flag False,
haddockExecutables = Flag False,
haddockTestSuites = Flag False,
haddockBenchmarks = Flag False,
Expand Down Expand Up @@ -1326,7 +1332,7 @@ haddockOptions showOrParseArgs =
,option "" ["for-hackage"]
"Collection of flags to generate documentation suitable for upload to hackage"
haddockForHackage (\v flags -> flags { haddockForHackage = v })
(noArg (Flag ForHackage))
trueArg

,option "" ["executables"]
"Run haddock for Executables targets"
Expand Down
3 changes: 2 additions & 1 deletion Cabal/changelog
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
-*-change-log-*-
1.24.1.1 Ryan Thomas <[email protected]> ??? 2016
1.24.2.0 Ryan Thomas <[email protected]> ??? 2016
* Fixed a bug in the handling of non-buildable components (#4094).
* Reverted a PVP-noncompliant API change in 1.24.1.0 (#4123).

1.24.1.0 Ryan Thomas <[email protected]> October 2016
* API addition: 'differenceVersionRanges' (#3519).
Expand Down
2 changes: 1 addition & 1 deletion Cabal/doc/index.markdown
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
% Cabal User Guide
**Version: 1.24.1.0**
**Version: 1.24.2.0**

Cabal is the standard package system for [Haskell] software. It helps
people to configure, build and install Haskell software and to
Expand Down
7 changes: 3 additions & 4 deletions cabal-install/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ import Distribution.Client.Setup
, manpageCommand
)
import Distribution.Simple.Setup
( HaddockTarget(..)
, HaddockFlags(..), haddockCommand, defaultHaddockFlags
( HaddockFlags(..), haddockCommand, defaultHaddockFlags
, HscolourFlags(..), hscolourCommand
, ReplFlags(..)
, CopyFlags(..), copyCommand
Expand Down Expand Up @@ -905,7 +904,7 @@ haddockAction haddockFlags extraArgs globalFlags = do
setupScriptOptions = defaultSetupScriptOptions { useDistPref = distPref }
setupWrapper verbosity setupScriptOptions Nothing
haddockCommand (const haddockFlags') extraArgs
when (haddockForHackage haddockFlags == Flag ForHackage) $ do
when (haddockForHackage haddockFlags == Flag True) $ do
pkg <- fmap LBI.localPkgDescr (getPersistBuildConfig distPref)
let dest = distPref </> name <.> "tar.gz"
name = display (packageId pkg) ++ "-docs"
Expand Down Expand Up @@ -1112,7 +1111,7 @@ uploadAction uploadFlags extraArgs globalFlags = do
++ "If you need to customise Haddock options, "
++ "run 'haddock --for-hackage' first "
++ "to generate a documentation tarball."
haddockAction (defaultHaddockFlags { haddockForHackage = Flag ForHackage })
haddockAction (defaultHaddockFlags { haddockForHackage = Flag True })
[] globalFlags
distPref <- findSavedDistPref config NoFlag
pkg <- fmap LBI.localPkgDescr (getPersistBuildConfig distPref)
Expand Down
2 changes: 1 addition & 1 deletion cabal-install/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ NETWORK_VER="2.6.2.1"; NETWORK_VER_REGEXP="2\.[0-6]\."
# >= 2.0 && < 2.7
NETWORK_URI_VER="2.6.1.0"; NETWORK_URI_VER_REGEXP="2\.6\."
# >= 2.6 && < 2.7
CABAL_VER="1.24.1.0"; CABAL_VER_REGEXP="1\.24\.[1-9]"
CABAL_VER="1.24.2.0"; CABAL_VER_REGEXP="1\.24\.[1-9]"
# >= 1.24.1 && < 1.25
TRANS_VER="0.5.2.0"; TRANS_VER_REGEXP="0\.[45]\."
# >= 0.2.* && < 0.6
Expand Down
4 changes: 2 additions & 2 deletions cabal-install/cabal-install.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: cabal-install
Version: 1.24.0.1
Version: 1.24.0.2
Synopsis: The command-line interface for Cabal and Hackage.
Description:
The \'cabal\' command-line program simplifies the process of managing
Expand Down Expand Up @@ -265,7 +265,7 @@ executable cabal
base16-bytestring >= 0.1.1 && < 0.2,
binary >= 0.5 && < 0.9,
bytestring >= 0.9 && < 1,
Cabal >= 1.24.1 && < 1.25,
Cabal >= 1.24 && < 1.24.1 || >= 1.24.2 && < 1.25,
containers >= 0.4 && < 0.6,
cryptohash-sha256 >= 0.11 && < 0.12,
filepath >= 1.3 && < 1.5,
Expand Down