packages feed

simple-cabal 0.1.1 → 0.1.2

raw patch · 4 files changed

+105/−39 lines, 4 filesdep +bytestring

Dependencies added: bytestring

Files

− CHANGELOG.md
@@ -1,21 +0,0 @@-# Changelog--`simple-cabal` uses [PVP Versioning](https://pvp.haskell.org)--## 0.1.1 (2019-10-05)-- fix tryFindPackageDesc on Cabal 3--## 0.1.0 (2019-09-30)-- add buildDependencies, setupDependencies, testsuiteDependencies-  (from cabal-rpm), and tryFindPackageDesc-- more deps compatibility: showVersion, depPkgName, exeDepName, pkgcfgDepName-- export PackageName, mkPackageName, unPackageName,-  allBuildInfo, BuildInfo, FlagName & mkFlagName, licenseFiles-- no longer export: normal-- support Cabal-3 (ghc-8.8.1)--## 0.0.0.1 (2019-07-09)-- allow building with Cabal 1!--## 0.0.0 (2019-06-08)-- Initially version, mostly taken from cabal-rpm PackageUtils.hs
+ ChangeLog.md view
@@ -0,0 +1,28 @@+# Changelog++`simple-cabal` uses [PVP Versioning](https://pvp.haskell.org)++## 0.1.2 (2020-05-23)+- readFinalPackageDescription deprecates finalPackageDescription+- add makeFinalPackageDescription+- add parseFinalPackageDescription for Cabal-2.2++- export simpleParse+- export hasExes and hasLibs++## 0.1.1 (2019-10-05)+- fix tryFindPackageDesc on Cabal 3++## 0.1.0 (2019-09-30)+- add buildDependencies, setupDependencies, testsuiteDependencies+  (from cabal-rpm), and tryFindPackageDesc+- more deps compatibility: showVersion, depPkgName, exeDepName, pkgcfgDepName+- export PackageName, mkPackageName, unPackageName,+  allBuildInfo, BuildInfo, FlagName & mkFlagName, licenseFiles+- no longer export: normal+- support Cabal-3 (ghc-8.8.1)++## 0.0.0.1 (2019-07-09)+- allow building with Cabal 1!++## 0.0.0 (2019-06-08)+- Initially version, mostly taken from cabal-rpm PackageUtils.hs
SimpleCabal.hs view
@@ -2,7 +2,12 @@  module SimpleCabal (   findCabalFile,+  readFinalPackageDescription,   finalPackageDescription,+#if MIN_VERSION_Cabal(2,2,0)+  parseFinalPackageDescription,+#endif+  makeFinalPackageDescription,   getPackageId, --  dependencies, #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,4,0)@@ -16,6 +21,7 @@   BuildInfo (..),   depPkgName, exeDepName, pkgcfgDepName,   FlagName, mkFlagName,+  hasExes, hasLibs, #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0) #else   licenseFiles,@@ -27,6 +33,7 @@   readGenericPackageDescription,   showPkgId,   showVersion,+  simpleParse,   tryFindPackageDesc   ) where @@ -35,6 +42,9 @@ import Control.Applicative ((<$>)) #endif +#if MIN_VERSION_Cabal(2,2,0)+import qualified Data.ByteString.Char8 as B+#endif import Data.List (delete, nub)  import Distribution.Compiler@@ -74,12 +84,13 @@ #endif   extraLibs, #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)-  FlagName, +  FlagName,   mkFlagName, #else   FlagName (..), #endif   GenericPackageDescription(packageDescription),+  hasExes, hasLibs, #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)   mkFlagAssignment, #endif@@ -99,7 +110,8 @@ import Distribution.PackageDescription.Configuration (finalizePackageDescription) #endif #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)-import Distribution.PackageDescription.Parsec (readGenericPackageDescription)+import Distribution.PackageDescription.Parsec+       (readGenericPackageDescription, parseGenericPackageDescriptionMaybe) #elif defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0) import Distribution.PackageDescription.Parse (readGenericPackageDescription) #else@@ -136,6 +148,8 @@  import Distribution.System (Platform (..), buildArch, buildOS) +import Distribution.Text (simpleParse)+ import Distribution.Verbosity (normal, #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0) #else@@ -164,7 +178,7 @@ -- -- Errors if more than one or no file found. ----- since @0.0.0.1@+-- @since 0.0.0.1 findCabalFile :: IO FilePath findCabalFile = do   allCabals <- filesWithExtension "." ".cabal"@@ -180,7 +194,7 @@  -- | Get the package name-version from the .cabal file in the current directory. ----- since @0.0.0.1@+-- @since 0.0.0.1 getPackageId :: IO PackageIdentifier getPackageId = do   gpd <- findCabalFile >>= readGenericPackageDescription normal@@ -193,28 +207,60 @@ readGenericPackageDescription = readPackageDescription #endif +#if MIN_VERSION_Cabal(2,2,0)+-- | only available with Cabal-2.2++--+-- @since 0.1.2+parseFinalPackageDescription :: [(FlagName, Bool)] -> B.ByteString+                          -> IO (Maybe PackageDescription)+parseFinalPackageDescription flags cabalfile = do+  let mgenPkgDesc = parseGenericPackageDescriptionMaybe cabalfile+  case mgenPkgDesc of+    Nothing -> return Nothing+    Just genPkgDesc -> Just <$> makeFinalPackageDescription flags genPkgDesc+#endif+ -- | Generate PackageDescription from the specified .cabal file and flags. ----- since @0.0.0.1@+-- deprecated in favour of readFinalPackageDescription+--+-- @since 0.0.0.1 finalPackageDescription :: [(FlagName, Bool)] -> FilePath                           -> IO PackageDescription-finalPackageDescription flags cabalfile = do+finalPackageDescription = readFinalPackageDescription++-- | get PackageDescription from a cabal file+--+-- deprecates finalPackageDescription+--+-- @since 0.1.2+readFinalPackageDescription :: [(FlagName, Bool)] -> FilePath+                            -> IO PackageDescription+readFinalPackageDescription flags cabalfile =+  readGenericPackageDescription normal cabalfile >>=+  makeFinalPackageDescription flags++-- | convert a GenericPackageDescription to a final PackageDescription+--+-- @since 0.1.2+makeFinalPackageDescription :: [(FlagName, Bool)] -> GenericPackageDescription+                            -> IO PackageDescription+makeFinalPackageDescription flags genPkgDesc = do #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0) #else   let defaultProgramDb = defaultProgramConfiguration #endif-  genPkgDesc <- readGenericPackageDescription normal cabalfile   compiler <- do #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,18,0)-                              (compiler, _, _) <- configCompilerEx+    (compiler, _, _) <- configCompilerEx #else-                              (compiler, _) <- configCompiler+    (compiler, _) <- configCompiler #endif-                                (Just GHC) Nothing Nothing defaultProgramDb normal+       (Just GHC) Nothing Nothing defaultProgramDb normal #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)-                              return (compilerInfo compiler)+    return (compilerInfo compiler) #else-                              return (compilerId compiler)+    return (compilerId compiler) #endif #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0) #else@@ -245,6 +291,7 @@   let self = pkgName $ package pkgDesc in   delete self . nub . map depPkgName $ concatMap (targetBuildDepends . testBuildInfo) (testSuites pkgDesc) +-- | version string from PackageIdentifier packageVersion :: PackageIdentifier -> String packageVersion = #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)@@ -253,6 +300,7 @@   showVersion . pkgVersion #endif +-- | convert PackageIdentifier to a displayable string showPkgId :: PackageIdentifier -> String showPkgId pkgid = #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)@@ -268,6 +316,7 @@ #endif  #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)+-- | render a Version showVersion :: Distribution.Version.Version -> String showVersion = prettyShow #endif@@ -278,6 +327,7 @@ mkFlagName = FlagName #endif +-- | Find cabal file tryFindPackageDesc :: FilePath -> IO FilePath tryFindPackageDesc = #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0)@@ -291,29 +341,36 @@  #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0) #else+-- | singleton list of license file licenseFiles :: PackageDescription -> [FilePath] licenseFiles pkgDesc =   [licenseFile pkgDesc | licenseFile pkgDesc /= ""] #endif  #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,4,0)+-- | List build dependencies buildDepends :: PackageDescription -> [Dependency] buildDepends = flip enabledBuildDepends defaultComponentRequestedSpec #endif  #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)+-- | name of legacy exe dep exeDepName :: LegacyExeDependency -> String exeDepName (LegacyExeDependency n _) = n +-- | pkgconfig dep name pkgcfgDepName :: PkgconfigDependency -> String pkgcfgDepName (PkgconfigDependency n _) = unPkgconfigName n #else+-- | PackageName of dependency depPkgName :: Dependency -> PackageName depPkgName (Dependency pn _) = pn +-- | name of dependency exeDepName :: Dependency -> String exeDepName = unPackageName . depPkgName +-- | name of dependency pkgcfgDepName :: Dependency -> String pkgcfgDepName = unPackageName . depPkgName #endif@@ -324,6 +381,7 @@ mkPackageName = PackageName #endif +-- | List of setup dependencies setupDependencies :: PackageDescription  -- ^pkg description                   -> [PackageName]         -- ^depends #if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,24,0)
simple-cabal.cabal view
@@ -1,6 +1,6 @@ cabal-version:       >= 1.10 name:                simple-cabal-version:             0.1.1+version:             0.1.2 synopsis:            Cabal file wrapper library description:         Find and read .cabal files, and                      a Cabal dependency compatibility layer.@@ -14,10 +14,10 @@ category:            Distribution build-type:          Simple extra-source-files:  README.md-                   , CHANGELOG.md-tested-with:         GHC == 8.8.1, GHC == 8.6.5, GHC == 8.4.4, GHC == 8.2.2,-                     GHC == 8.0.2, GHC == 7.10.3, GHC == 7.8.4, GHC == 7.6.3,-                     GHC == 7.4.2, GHC == 7.0.4+                   , ChangeLog.md+tested-with:         GHC == 8.10.1, GHC == 8.8.3, GHC == 8.6.5, GHC == 8.4.4,+                     GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3, GHC == 7.8.4,+                     GHC == 7.6.3, GHC == 7.4.2, GHC == 7.0.4  source-repository head   type:                git@@ -25,9 +25,10 @@  library   exposed-modules:     SimpleCabal-                        +   build-depends:       base < 5,+                       bytestring,                        Cabal,                        directory,                        filepath