diff --git a/Cabal/src/Distribution/Simple/Build/PathsModule.hs b/Cabal/src/Distribution/Simple/Build/PathsModule.hs index 8288d287900cdac330a5cd63c37a42cc8a471fb6..2ec2968922296e62206446113d0c40c305a39fd2 100644 --- a/Cabal/src/Distribution/Simple/Build/PathsModule.hs +++ b/Cabal/src/Distribution/Simple/Build/PathsModule.hs @@ -41,6 +41,7 @@ generatePathsModule pkg_descr lbi clbi = Z.render Z.Z , Z.zVersionDigits = show $ versionNumbers $ packageVersion pkg_descr , Z.zSupportsCpp = supports_cpp , Z.zSupportsNoRebindableSyntax = supports_rebindable_syntax + , Z.zSupportsNoMissingSafeHaskellMode = supports_missing_safehaskell , Z.zAbsolute = absolute , Z.zRelocatable = relocatable lbi , Z.zIsWindows = isWindows @@ -58,9 +59,10 @@ generatePathsModule pkg_descr lbi clbi = Z.render Z.Z , Z.zSysconfdir = zSysconfdir } where - supports_cpp = supports_language_pragma - supports_rebindable_syntax = ghc_newer_than (mkVersion [7,0,1]) - supports_language_pragma = ghc_newer_than (mkVersion [6,6,1]) + supports_cpp = supports_language_pragma + supports_rebindable_syntax = ghc_newer_than (mkVersion [7,0,1]) + supports_language_pragma = ghc_newer_than (mkVersion [6,6,1]) + supports_missing_safehaskell = ghc_newer_than (mkVersion [8,10,1]) ghc_newer_than minVersion = case compilerCompatVersion GHC (compiler lbi) of diff --git a/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs b/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs index 03bf83e536629e1aa442cc93fa3c805f8ae512f7..928a8b2d964a43ae6bb0046ed5dcc76e79b32a48 100644 --- a/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs +++ b/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs @@ -6,6 +6,7 @@ data Z zVersionDigits :: String, zSupportsCpp :: Bool, zSupportsNoRebindableSyntax :: Bool, + zSupportsNoMissingSafeHaskellMode :: Bool, zAbsolute :: Bool, zRelocatable :: Bool, zIsWindows :: Bool, @@ -42,6 +43,12 @@ render z_root = execWriter $ do else do return () tell "{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}\n" + if (zSupportsNoMissingSafeHaskellMode z_root) + then do + tell "{-# OPTIONS_GHC -Wno-missing-safe-haskell-mode #-}\n" + return () + else do + return () tell "module Paths_" tell (zManglePkgName z_root (zPackageName z_root)) tell " (\n" diff --git a/cabal-dev-scripts/src/GenPathsModule.hs b/cabal-dev-scripts/src/GenPathsModule.hs index e4b930635c4f1785e2958f72b0e0080611e189bd..c3f54082f3b24ed13d09c1b4af8eb4ece5e0a260 100644 --- a/cabal-dev-scripts/src/GenPathsModule.hs +++ b/cabal-dev-scripts/src/GenPathsModule.hs @@ -27,6 +27,7 @@ $(capture "decls" [d| , zVersionDigits :: String , zSupportsCpp :: Bool , zSupportsNoRebindableSyntax :: Bool + , zSupportsNoMissingSafeHaskellMode :: Bool , zAbsolute :: Bool , zRelocatable :: Bool , zIsWindows :: Bool diff --git a/templates/Paths_pkg.template.hs b/templates/Paths_pkg.template.hs index 15bbf6e4dcaab0f0ea96e8a44fd3412570a64235..62807ada5721954ff163158aa0f131212f104c83 100644 --- a/templates/Paths_pkg.template.hs +++ b/templates/Paths_pkg.template.hs @@ -8,6 +8,9 @@ {-# LANGUAGE ForeignFunctionInterface #-} {% endif %} {-# OPTIONS_GHC -fno-warn-missing-import-lists #-} +{% if supportsNoMissingSafeHaskellMode %} +{-# OPTIONS_GHC -Wno-missing-safe-haskell-mode #-} +{% endif %} module Paths_{{ manglePkgName packageName }} ( version, getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,