diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,10 @@
 
 `simple-cabal` uses [PVP Versioning](https://pvp.haskell.org)
 
+## 0.1.3 (2020-10-04)
+- add allLibraries (from Cabal>= 2.0) and Library
+- deprecate allBuildInfo
+
 ## 0.1.2 (2020-05-23)
 - readFinalPackageDescription deprecates finalPackageDescription
 - add makeFinalPackageDescription
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/SimpleCabal.hs b/SimpleCabal.hs
--- a/SimpleCabal.hs
+++ b/SimpleCabal.hs
@@ -17,8 +17,10 @@
   setupDependencies,
   testsuiteDependencies,
 
-  allBuildInfo,
+  allBuildInfo, -- deprecated by allLibraries et al
+  allLibraries,
   BuildInfo (..),
+  Library(..),
   depPkgName, exeDepName, pkgcfgDepName,
   FlagName, mkFlagName,
   hasExes, hasLibs,
@@ -45,6 +47,9 @@
 #if MIN_VERSION_Cabal(2,2,0)
 import qualified Data.ByteString.Char8 as B
 #endif
+#if !MIN_VERSION_Cabal(2,0,0)
+import Data.Maybe (maybeToList)
+#endif
 import Data.List (delete, nub)
 
 import Distribution.Compiler
@@ -77,13 +82,16 @@
 import Distribution.PackageDescription (
   PackageDescription (..),
   allBuildInfo,
+#if MIN_VERSION_Cabal(2,0,0)
+  allLibraries,
+#endif
   BuildInfo (..),
 --  buildToolDepends,
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,4,0)
+#if MIN_VERSION_Cabal(2,4,0)
   enabledBuildDepends,
 #endif
   extraLibs,
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
+#if MIN_VERSION_Cabal(2,0,0)
   FlagName,
   mkFlagName,
 #else
@@ -91,17 +99,18 @@
 #endif
   GenericPackageDescription(packageDescription),
   hasExes, hasLibs,
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+  Library(..),
+#if MIN_VERSION_Cabal(2,2,0)
   mkFlagAssignment,
 #endif
   pkgconfigDepends,
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,24,0)
+#if MIN_VERSION_Cabal(1,24,0)
   setupDepends,
 #endif
   targetBuildDepends,
   TestSuite (..)
   )
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
+#if MIN_VERSION_Cabal(2,0,0)
 import Distribution.PackageDescription.Configuration (finalizePD)
 import Distribution.Types.ComponentRequestedSpec (defaultComponentRequestedSpec)
 import Distribution.Types.LegacyExeDependency (LegacyExeDependency (..))
@@ -109,37 +118,37 @@
 #else
 import Distribution.PackageDescription.Configuration (finalizePackageDescription)
 #endif
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+#if MIN_VERSION_Cabal(2,2,0)
 import Distribution.PackageDescription.Parsec
        (readGenericPackageDescription, parseGenericPackageDescriptionMaybe)
-#elif defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
+#elif MIN_VERSION_Cabal(2,0,0)
 import Distribution.PackageDescription.Parse (readGenericPackageDescription)
 #else
 import Distribution.PackageDescription.Parse (readPackageDescription)
 #endif
 
 import Distribution.Simple.Compiler (
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)
+#if MIN_VERSION_Cabal(1,22,0)
     compilerInfo
 #else
     Compiler (..)
 #endif
     )
 import Distribution.Simple.Configure (
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,18,0)
+#if MIN_VERSION_Cabal(1,18,0)
     configCompilerEx
 #else
     configCompiler
 #endif
     )
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
+#if MIN_VERSION_Cabal(2,0,0)
 --import Distribution.Simple.BuildToolDepends (getAllToolDependencies)
 import Distribution.Simple.Program   (defaultProgramDb)
 #else
 import Distribution.Simple.Program   (defaultProgramConfiguration)
 #endif
 import qualified Distribution.Simple.Utils as DSU (
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0)
+#if MIN_VERSION_Cabal(1,20,0)
     tryFindPackageDesc
 #else
     findPackageDesc
@@ -151,23 +160,22 @@
 import Distribution.Text (simpleParse)
 
 import Distribution.Verbosity (normal,
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
-#else
+#if !MIN_VERSION_Cabal(2,0,0)
                                Verbosity
 #endif
                               )
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+#if MIN_VERSION_Cabal(2,2,0)
 import Distribution.Pretty (prettyShow)
 #else
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
+#if MIN_VERSION_Cabal(2,0,0)
 import Distribution.Version (showVersion)
 #else
 import Data.Version (showVersion)
 #endif
 #endif
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+#if MIN_VERSION_Cabal(2,2,0)
 import qualified Distribution.Version (Version)
 #endif
 
@@ -200,8 +208,7 @@
   gpd <- findCabalFile >>= readGenericPackageDescription normal
   return $ package $ packageDescription gpd
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
-#else
+#if !MIN_VERSION_Cabal(2,0,0)
 readGenericPackageDescription :: Verbosity
                               -> FilePath -> IO GenericPackageDescription
 readGenericPackageDescription = readPackageDescription
@@ -246,27 +253,25 @@
 makeFinalPackageDescription :: [(FlagName, Bool)] -> GenericPackageDescription
                             -> IO PackageDescription
 makeFinalPackageDescription flags genPkgDesc = do
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
-#else
+#if !MIN_VERSION_Cabal(2,0,0)
   let defaultProgramDb = defaultProgramConfiguration
 #endif
   compiler <- do
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,18,0)
+#if MIN_VERSION_Cabal(1,18,0)
     (compiler, _, _) <- configCompilerEx
 #else
     (compiler, _) <- configCompiler
 #endif
        (Just GHC) Nothing Nothing defaultProgramDb normal
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)
+#if MIN_VERSION_Cabal(1,22,0)
     return (compilerInfo compiler)
 #else
     return (compilerId compiler)
 #endif
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
-#else
+#if !MIN_VERSION_Cabal(2,2,0)
   let mkFlagAssignment = id
 #endif
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
+#if MIN_VERSION_Cabal(2,0,0)
   let finalizePackageDescription flags' = finalizePD flags' defaultComponentRequestedSpec
 #endif
   let final =
@@ -294,7 +299,7 @@
 -- | version string from PackageIdentifier
 packageVersion :: PackageIdentifier -> String
 packageVersion =
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+#if MIN_VERSION_Cabal(2,2,0)
   prettyShow . pkgVersion
 #else
   showVersion . pkgVersion
@@ -303,26 +308,24 @@
 -- | convert PackageIdentifier to a displayable string
 showPkgId :: PackageIdentifier -> String
 showPkgId pkgid =
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+#if MIN_VERSION_Cabal(2,2,0)
   prettyShow pkgid
 #else
   unPackageName (packageName pkgid) ++ "-" ++ packageVersion pkgid
 #endif
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,22,0)
-#else
+#if !MIN_VERSION_Cabal(1,22,0)
 unPackageName :: PackageName -> String
 unPackageName (PackageName n) = n
 #endif
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,2,0)
+#if MIN_VERSION_Cabal(2,2,0)
 -- | render a Version
 showVersion :: Distribution.Version.Version -> String
 showVersion = prettyShow
 #endif
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
-#else
+#if !MIN_VERSION_Cabal(2,0,0)
 mkFlagName :: String -> FlagName
 mkFlagName = FlagName
 #endif
@@ -330,30 +333,29 @@
 -- | Find cabal file
 tryFindPackageDesc :: FilePath -> IO FilePath
 tryFindPackageDesc =
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0)
+#if MIN_VERSION_Cabal(1,20,0)
   DSU.tryFindPackageDesc
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(3,0,0)
+#if MIN_VERSION_Cabal(3,0,0)
     normal
 #endif
 #else
   DSU.findPackageDesc
 #endif
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,20,0)
-#else
+#if !MIN_VERSION_Cabal(1,20,0)
 -- | 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)
+#if 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)
+#if MIN_VERSION_Cabal(2,0,0)
 -- | name of legacy exe dep
 exeDepName :: LegacyExeDependency -> String
 exeDepName (LegacyExeDependency n _) = n
@@ -375,8 +377,7 @@
 pkgcfgDepName = unPackageName . depPkgName
 #endif
 
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(2,0,0)
-#else
+#if !MIN_VERSION_Cabal(2,0,0)
 mkPackageName :: String -> PackageName
 mkPackageName = PackageName
 #endif
@@ -384,7 +385,7 @@
 -- | List of setup dependencies
 setupDependencies :: PackageDescription  -- ^pkg description
                   -> [PackageName]         -- ^depends
-#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,24,0)
+#if MIN_VERSION_Cabal(1,24,0)
 setupDependencies pkgDesc =
   maybe [] (map depPkgName . setupDepends) (setupBuildInfo pkgDesc)
 #else
@@ -403,3 +404,8 @@
 --         clibs = nub $ concatMap extraLibs buildinfo
 --         pkgcfgs = nub $ concatMap pkgconfigDepends buildinfo
 --     in (deps, setup, tools, clibs, pkgcfgs)
+
+#if !MIN_VERSION_Cabal(2,0,0)
+allLibraries :: PackageDescription -> [Library]
+allLibraries = maybeToList . library
+#endif
diff --git a/simple-cabal.cabal b/simple-cabal.cabal
--- a/simple-cabal.cabal
+++ b/simple-cabal.cabal
@@ -1,6 +1,6 @@
 cabal-version:       >= 1.10
 name:                simple-cabal
-version:             0.1.2
+version:             0.1.3
 synopsis:            Cabal file wrapper library
 description:         Find and read .cabal files, and
                      a Cabal dependency compatibility layer.
@@ -10,7 +10,7 @@
 license-file:        LICENSE
 author:              Jens Petersen
 maintainer:          juhpetersen@gmail.com
-copyright:           2019 Jens Petersen
+copyright:           2019-2020 Jens Petersen
 category:            Distribution
 build-type:          Simple
 extra-source-files:  README.md
