@@ -846,12 +846,24 @@ ensureRequiredCabalVersion inferredLicense pkg@Package{..} = pkg {
846846 makeVersion [1 ,22 ] <$ guard (has libraryReexportedModules)
847847 , makeVersion [2 ,0 ] <$ guard (has librarySignatures)
848848 , makeVersion [2 ,0 ] <$ guard (has libraryGeneratedModules)
849+ , makeVersion [3 ,12 ] <$ guard (libraryHasPackageInfoModule sect)
849850 , makeVersion [3 ,0 ] <$ guard (has libraryVisibility)
850851 , sectionCabalVersion (concatMap getLibraryModules) sect
851852 ]
852853 where
853854 has field = any (not . null . field) sect
854855
856+ libraryHasPackageInfoModule :: Section Library -> Bool
857+ libraryHasPackageInfoModule =
858+ any (hasPackageInfoModule . libraryGeneratedModules)
859+
860+ packageInfoModule :: Module
861+ packageInfoModule =
862+ Module (" PackageInfo_" ++ moduleNameFromPackageName packageName)
863+
864+ hasPackageInfoModule :: [Module ] -> Bool
865+ hasPackageInfoModule = any (== packageInfoModule)
866+
855867 internalLibsCabalVersion :: Map String (Section Library ) -> Maybe CabalVersion
856868 internalLibsCabalVersion internalLibraries
857869 | Map. null internalLibraries = Nothing
@@ -865,12 +877,17 @@ ensureRequiredCabalVersion inferredLicense pkg@Package{..} = pkg {
865877 executableCabalVersion :: Section Executable -> Maybe CabalVersion
866878 executableCabalVersion sect = maximum [
867879 makeVersion [2 ,0 ] <$ guard (executableHasGeneratedModules sect)
880+ , makeVersion [3 ,12 ] <$ guard (executableHasPackageInfoModule sect)
868881 , sectionCabalVersion (concatMap getExecutableModules) sect
869882 ]
870883
871884 executableHasGeneratedModules :: Section Executable -> Bool
872885 executableHasGeneratedModules = any (not . null . executableGeneratedModules)
873886
887+ executableHasPackageInfoModule :: Section Executable -> Bool
888+ executableHasPackageInfoModule =
889+ any (hasPackageInfoModule . executableGeneratedModules)
890+
874891 sectionCabalVersion :: (Section a -> [Module ]) -> Section a -> Maybe CabalVersion
875892 sectionCabalVersion getMentionedModules sect = maximum $ [
876893 makeVersion [2 ,2 ] <$ guard (sectionSatisfies (not . null . sectionCxxSources) sect)
@@ -1659,7 +1676,11 @@ toBuildTool packageName_ executableNames = \ case
16591676 warnLegacySystemTool name = tell [" Listing " ++ show name ++ " under build-tools is deperecated! Please list system executables under system-build-tools instead!" ]
16601677
16611678pathsModuleFromPackageName :: String -> Module
1662- pathsModuleFromPackageName name = Module (" Paths_" ++ map f name)
1663- where
1664- f ' -' = ' _'
1665- f x = x
1679+ pathsModuleFromPackageName name =
1680+ Module (" Paths_" ++ moduleNameFromPackageName name)
1681+
1682+ moduleNameFromPackageName :: String -> String
1683+ moduleNameFromPackageName = map f
1684+ where
1685+ f ' -' = ' _'
1686+ f x = x
0 commit comments