diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index b917cae348e..d6250562279 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -132,6 +132,7 @@ library Distribution.Client.Compat.Orphans Distribution.Client.Compat.Prelude Distribution.Client.Compat.Semaphore + Distribution.Client.Compat.SysInfo Distribution.Client.Compat.Tar Distribution.Client.Config Distribution.Client.Configure diff --git a/cabal-install/src/Distribution/Client/Compat/SysInfo.hs b/cabal-install/src/Distribution/Client/Compat/SysInfo.hs new file mode 100644 index 00000000000..850a385c0af --- /dev/null +++ b/cabal-install/src/Distribution/Client/Compat/SysInfo.hs @@ -0,0 +1,15 @@ +{-# LANGUAGE CPP #-} + +module Distribution.Client.Compat.SysInfo + ( fullCompilerVersion + ) where + +import Data.Version (Version) +import qualified System.Info as SI + +fullCompilerVersion :: Version +#if MIN_VERSION_base(4,15,0) +fullCompilerVersion = SI.fullCompilerVersion +#else +fullCompilerVersion = SI.compilerVersion +#endif diff --git a/cabal-install/src/Distribution/Client/Main.hs b/cabal-install/src/Distribution/Client/Main.hs index be0ab581c00..301f9cd3abe 100644 --- a/cabal-install/src/Distribution/Client/Main.hs +++ b/cabal-install/src/Distribution/Client/Main.hs @@ -170,7 +170,8 @@ import Distribution.Client.Utils , relaxEncodingErrors ) import Distribution.Client.Version - ( cabalInstallGitInfo + ( cabalInstallCompilerInfo + , cabalInstallGitInfo , cabalInstallVersion ) @@ -424,6 +425,8 @@ mainWorker args = do ++ display cabalVersion ++ " of the Cabal library " ++ cabalGitInfo' + ++ "\nwith " + ++ cabalInstallCompilerInfo where cabalGitInfo' | cabalGitInfo == cabalInstallGitInfo = "(in-tree)" diff --git a/cabal-install/src/Distribution/Client/Version.hs b/cabal-install/src/Distribution/Client/Version.hs index 14a3c166f63..cb782219a23 100644 --- a/cabal-install/src/Distribution/Client/Version.hs +++ b/cabal-install/src/Distribution/Client/Version.hs @@ -7,9 +7,14 @@ module Distribution.Client.Version ( cabalInstallVersion , cabalInstallGitInfo + , cabalInstallCompilerInfo ) where +import Data.List (intercalate) +import qualified Data.Version as DV +import qualified Distribution.Client.Compat.SysInfo as SIC import Distribution.Version +import qualified System.Info as SI import qualified Paths_cabal_install as PackageInfo @@ -28,6 +33,20 @@ import GitHash cabalInstallVersion :: Version cabalInstallVersion = mkVersion' PackageInfo.version +-- | +-- `cabal-install` compiler information. +cabalInstallCompilerInfo :: String +cabalInstallCompilerInfo = + concat + [ SI.compilerName + , " " + , intercalate "." (map show (DV.versionBranch SIC.fullCompilerVersion)) + , " on " + , SI.os + , " " + , SI.arch + ] + -- | -- `cabal-install` Git information. Only filled in if built in a Git tree in -- developmnent mode and Template Haskell is available.