-- | Copyright: (c) 2020 berberman
-- SPDX-License-Identifier: MIT
-- Maintainer: berberman <1793913507@qq.com>
-- Stability: experimental
-- Portability: portable
-- This module maintains names of packages which are need special treatments during dependency resolving or PKGBUILD generating.
module Distribution.ArchHs.Local
  ( ignoreList,
    ghcLibList,
  )
where

import Distribution.ArchHs.Types
import Distribution.Types.PackageName

-- | Packages should be dropped in dependency resolving.
ignoreList :: PkgList
ignoreList :: PkgList
ignoreList =
  String -> PackageName
mkPackageName
    (String -> PackageName) -> [String] -> PkgList
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [ String
"unbuildable",
          String
"invalid-cabal-flag-settings",
          String
"par-classes",
          String
"fail",
          String
"integer-simple",
          String
"bytestring-builder",
          String
"nats",
          String
"old-time",
          String
"old-locale",
          String
"integer",
          String
"unsupported-ghc-version",
          String
"base",
          String
"ghc",
          String
"ghc-prim",
          String
"ghc-bignum",
          String
"hans",
          String
"Win32",
          String
"ghc-heap"
        ]

-- | Packages already provided by <https://www.archlinux.org/packages/community/x86_64/ghc-libs/ ghc-libs>.
ghcLibList :: PkgList
ghcLibList :: PkgList
ghcLibList =
  String -> PackageName
mkPackageName
    (String -> PackageName) -> [String] -> PkgList
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [ String
"array",
          String
"base",
          String
"binary",
          String
"bytestring",
          String
"Cabal",
          String
"containers",
          String
"deepseq",
          String
"directory",
          String
"exceptions",
          String
"filepath",
          String
"ghc-boot",
          String
"ghc-boot-th",
          String
"ghc-compact",
          String
"ghc-heap",
          String
"ghci",
          String
"ghc-prim",
          String
"haskeline",
          String
"hpc",
          String
"integer-gmp",
          String
"libiserv",
          String
"mtl",
          String
"parsec",
          String
"pretty",
          String
"process",
          String
"stm",
          String
"template-haskell",
          String
"terminfo",
          String
"text",
          String
"time",
          String
"transformers",
          String
"unix",
          String
"xhtml"
        ]