From d32ec7038a509f755518819adfa912bc6e8372fe Mon Sep 17 00:00:00 2001 From: Emily Pillmore <emilypi@cohomolo.gy> Date: Wed, 5 May 2021 11:09:20 -0400 Subject: [PATCH] output warning for doc files specified with cabal spec < 1.18 --- .../Client/Init/Interactive/Command.hs | 2 +- .../Client/Init/NonInteractive/Command.hs | 2 +- .../src/Distribution/Client/Init/Simple.hs | 4 ++-- .../src/Distribution/Client/Init/Utils.hs | 22 ++++++++++++------- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs b/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs index f5c1aa0e54..4de2322623 100644 --- a/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs +++ b/cabal-install/src/Distribution/Client/Init/Interactive/Command.hs @@ -94,7 +94,7 @@ createProject v pkgIx srcDb initFlags = do isMinimal <- getMinimal initFlags doOverwrite <- getOverwrite initFlags pkgDir <- getPackageDir initFlags - pkgDesc <- fixupDocFiles <$> genPkgDescription initFlags srcDb + pkgDesc <- fixupDocFiles v =<< genPkgDescription initFlags srcDb let pkgName = _pkgName pkgDesc mkOpts cs = WriteOpts diff --git a/cabal-install/src/Distribution/Client/Init/NonInteractive/Command.hs b/cabal-install/src/Distribution/Client/Init/NonInteractive/Command.hs index f83f3aa3cf..16b7e70c08 100644 --- a/cabal-install/src/Distribution/Client/Init/NonInteractive/Command.hs +++ b/cabal-install/src/Distribution/Client/Init/NonInteractive/Command.hs @@ -102,7 +102,7 @@ createProject comp v pkgIx srcDb initFlags = do isMinimal <- getMinimal initFlags doOverwrite <- getOverwrite initFlags pkgDir <- packageDirHeuristics initFlags - pkgDesc <- fixupDocFiles <$> genPkgDescription initFlags srcDb + pkgDesc <- fixupDocFiles v =<< genPkgDescription initFlags srcDb comments <- noCommentsHeuristics initFlags let pkgName = _pkgName pkgDesc diff --git a/cabal-install/src/Distribution/Client/Init/Simple.hs b/cabal-install/src/Distribution/Client/Init/Simple.hs index 8a28c8db7e..fca3b752a1 100644 --- a/cabal-install/src/Distribution/Client/Init/Simple.hs +++ b/cabal-install/src/Distribution/Client/Init/Simple.hs @@ -14,7 +14,7 @@ import Distribution.Verbosity import Distribution.Simple.PackageIndex import Distribution.Client.Types.SourcePackageDb (SourcePackageDb(..)) import qualified Data.List.NonEmpty as NEL -import Distribution.Client.Init.Utils (currentDirPkgName, mkPackageNameDep) +import Distribution.Client.Init.Utils (currentDirPkgName, mkPackageNameDep, fixupDocFiles) import Distribution.Client.Init.Defaults import Distribution.Simple.Flag (fromFlagOrDefault, flagElim) import Distribution.Client.Init.FlagExtractors @@ -33,7 +33,7 @@ createProject v _pkgIx _srcDb initFlags = do isMinimal <- getMinimal initFlags doOverwrite <- getOverwrite initFlags pkgDir <- getPackageDir initFlags - pkgDesc <- genSimplePkgDesc initFlags + pkgDesc <- fixupDocFiles v =<< genSimplePkgDesc initFlags let pkgName = _pkgName pkgDesc mkOpts cs = WriteOpts diff --git a/cabal-install/src/Distribution/Client/Init/Utils.hs b/cabal-install/src/Distribution/Client/Init/Utils.hs index c48b2a89b3..924fa1b92f 100644 --- a/cabal-install/src/Distribution/Client/Init/Utils.hs +++ b/cabal-install/src/Distribution/Client/Init/Utils.hs @@ -269,11 +269,17 @@ mkPackageNameDep pkg = mkDependency pkg anyVersion (NES.singleton LMainLibName) -- so whatever the user wants as doc files should be dumped into -- extra-src-files. -- -fixupDocFiles :: PkgDescription -> PkgDescription -fixupDocFiles pkgDesc - | _pkgCabalVersion pkgDesc < CabalSpecV1_18 = pkgDesc - { _pkgExtraSrcFiles =_pkgExtraSrcFiles pkgDesc - <> fromMaybe mempty (_pkgExtraDocFiles pkgDesc) - , _pkgExtraDocFiles = Nothing - } - | otherwise = pkgDesc +fixupDocFiles :: Interactive m => Verbosity -> PkgDescription -> m PkgDescription +fixupDocFiles v pkgDesc + | _pkgCabalVersion pkgDesc < CabalSpecV1_18 = do + message v $ concat + [ "Cabal spec versions < 1.18 do not support extra-doc-files. " + , "Doc files will be treated as extra-src-files." + ] + + return $ pkgDesc + { _pkgExtraSrcFiles =_pkgExtraSrcFiles pkgDesc + <> fromMaybe mempty (_pkgExtraDocFiles pkgDesc) + , _pkgExtraDocFiles = Nothing + } + | otherwise = return pkgDesc -- GitLab